如何使用 While 循环、For 循环、函数和递归为阿姆斯特朗数编写 Python 程序?。我们还向您展示了打印 1 到 n 之间的阿姆斯特朗数字的 Python 程序
Python 中的阿姆斯特朗数
如果给定的数字等于该整数中每个数字的 n 次方之和,那么它可以是 Python 中的阿姆斯特朗数。比如 370 就是阿姆斯特朗数。
370 中的个别数字= 3
370 = 3г+7г+0г
= 27 + 343 + 0 = 370
以下步骤向您展示了在 Python 中检查阿姆斯特朗编号的常见方法
Python 步骤中的阿姆斯特朗数:
- 用户必须输入任何数字。
- 计算单个数字的总数(例如,370 表示 3)。
- 将给定的数字分成独立的数字(例如,将 370 分成 3、7 和 0)。
- 计算每个个体的 n 次方,并将这些数相加。
- 将原始值与总和值进行比较。
- 如果他们完全匹配,那么它是一个阿姆斯特朗数,否则它不是。
使用 While 循环的阿姆斯特朗数 Python 程序
这个 Python 程序允许用户输入任何正整数。然后,这个 Python 程序使用 While 循环检查一个数字是否是阿姆斯特朗数
Number = int(input("\nPlease Enter the Number to Check for Armstrong: "))
# Initializing Sum and Number of Digits
Sum = 0
Times = 0
# Calculating Number of individual digits
Temp = Number
while Temp > 0:
Times = Times + 1
Temp = Temp // 10
# Finding Armstrong Number
Temp = Number
while Temp > 0:
Reminder = Temp % 10
Sum = Sum + (Reminder ** Times)
Temp //= 10
if Number == Sum:
print("\n %d is Armstrong Number.\n" %Number)
else:
print("\n %d is Not a Armstrong Number.\n" %Number)
Python 中的 Armstrong Number 使用 While 循环输出
python 程序中的阿姆斯特朗数允许用户输入任意正整数,然后将其赋给变量 number。
接下来,我们将原始值赋给临时变量。它有助于保留我们的原始值,然后对 Temp 变量进行所有操作。
第一个 While 循环确保给定的数字大于 0,While 循环中的语句会拆分数字,并计算给定整数中各个数字的总数。如果您不理解 Python 程序的逻辑,请参考 Python 程序查找数字文章中的位数。
python 程序中阿姆斯特朗数的第二个 While 循环确保给定的数字大于 0。让我们看看迭代循环的工作原理
当温度> 0 时:提醒=温度% 10 总和=总和+(提醒**次)温度/= 10
用户为此 Python 程序输入的值,用于 Armstrong Number : Number= 9474,Sum = 0
温度=数字 温度= 9474
第一次迭代
提醒= Temp %10 提醒= 9474 % 10 = 4
总和=总和+幂(提醒,次数)
对于这个 Python 的例子,Times =4,因为 9474 中的位数=4。所以,
Sum = Sum +(提醒提醒提醒提醒) Sum = 0+(4 4 4 4)=>0+256 =>Sum = 256T3
温度=温度/10 => 9474 /10 温度= 947
注:如果数字计数为 5,则提醒乘以 5 倍。
第二次迭代:从 Python 程序中,对于 Armstrong Number 第一次迭代,Temp 和 Sum 的值都更改为 Temp = 163,Sum = 256
提醒=温度%10 提醒= 947 % 10 = 7
总和= 256 + (7 7 7 * 7) => 256 + 2401 总和= 2657
Temp = Temp/10 = > 163/10 Temp = 94
第三次迭代:从第二次迭代开始,Temp = 94,Sum = 2657。
提醒= 94 % 10 = 4
求和= 2657 + (4 4 4 * 4) => 2657 + 256 求和= 2913T2T4】
温度= 94 /10 = 9
阿姆斯特朗数第四次迭代的 Python 程序
从第三次迭代开始,Temp = 9,Sum = 2913 的值
提醒= 9 % 10 = 0
总和= 2913+(9 9 9)= > 2913+6561 总和= 9474
Temp = 9/10 = 0
这里 Temp = 0,所以 while 循环条件失败。
if(Number = = Sum)–条件检查用户输入的是否完全等于 Sum。如果这个条件为真,那么它是阿姆斯特朗数,否则它不是。
让我检查一下(数字= =总和)
如果(9474 = = 9474)–真,表示阿姆斯特朗
注意:如果您发现 Python Armstrong 数字低于 1000,请删除 while 循环以计算数字中的位数,然后替换下面的代码
Sum = Sum + (Reminder ** Times);
With
Sum = Sum + (Reminder * Reminder * Reminder)
用于循环的阿姆斯特朗数的 Python 程序
该 Python 程序允许用户输入任意正整数,然后,该程序使用 Python For Loop 检查一个数字是否为 Armstrong Number
Num = int(input("\nPlease Enter the Value : "))
Sum = 0
Times = 0
Temp = Num
while Temp > 0:
Times = Times + 1
Temp = Temp // 10
Temp = Num
for n in range(1, Temp + 1):
Reminder = Temp % 10
Sum = Sum + (Reminder ** Times)
Temp //= 10
if Num == Sum:
print("\n %d is Armstrong.\n" %Num)
else:
print("\n %d is Not a Armstrong.\n" %Num)
Please Enter the Value : 371
371 is Armstrong.
Please Enter the Value : 4458
4458 is Not a Armstrong.
我们刚刚用 For 循环替换了上面 Python 例子中阿姆斯特朗数中的 While 循环。如果您不理解 for 循环,请参考这里的 For 循环文章: Python For 循环
使用函数的阿姆斯特朗数的 Python 程序
这个 Python 程序允许用户输入任何正整数。然后,这个程序检查一个数字是否是阿姆斯特朗数或不使用功能
def Armstrong_Number(Number):
Sum = 0
Times = 0
# Calculating individual digits
Temp = Number
while Temp > 0:
Times = Times + 1
Temp = Temp // 10
Temp = Number
for n in range(1, Temp + 1):
Reminder = Temp % 10
Sum = Sum + (Reminder ** Times)
Temp //= 10
return Sum
#User Input
Number = int(input("\nPlease Enter the Number to Check for Armstrong: "))
if (Number == Armstrong_Number(Number)):
print("\n %d is Armstrong.\n" %Number)
else:
print("\n %d is Not an Armstrong.\n" %Number)
Please Enter the Number to Check for Armstrong: 153
153 is Armstrong.
>>>
Please Enter the Number to Check for Armstrong: 2256
2256 is Not an Armstrong.
在这个关于阿姆斯特朗数的 Python 程序示例中,我们定义了以下函数来执行所有必要的计算并返回 Sum。
def Armstrong_Number(Number):
当编译器到达 If 语句中的以下代码时,编译器立即跳转到上面指定的函数。
Armstrong_Number(Number)
我们已经解释了上面的逻辑例子。
用递归实现阿姆斯特朗数的 Python 程序
这个程序允许我们输入任何正整数。接下来,这个 Python 程序使用递归概念检查一个数字是否是阿姆斯特朗。
Sum = 0
Times = 0
def Count_Of_Digits(Number):
global Times
if(Number > 0):
Times = Times + 1
Count_Of_Digits(Number // 10)
return Times
def Armstrong_Number(Number, Times):
global Sum
if(Number > 0):
Reminder = Number % 10
Sum = Sum + (Reminder ** Times)
Armstrong_Number(Number //10, Times)
return Sum
Number = int(input("\nPlease Enter the Number : "))
Times = Count_Of_Digits(Number)
Sum = Armstrong_Number(Number, Times)
if (Number == Sum):
print("\n %d is Armstrong.\n" %Number)
else:
print("\n %d is Not a Armstrong.\n" %Number)
Please Enter the Number : 153
153 is Armstrong.
>>>
Please Enter the Number : 259
259 is Not a Armstrong.
在这个阿姆斯特朗数的 Python 程序示例中,我们定义了两个递归函数。下面的函数接受整数值作为参数值,并递归地计算一个数字中各个数字的总数。
def Count_Of_Digits(Number):
以下函数接受两个整数值作为参数值。它执行所有必要的计算并返回 Sum。
def Armstrong_Number(Number, Times):
阿姆斯特朗数的 Python 程序中的以下语句有助于用更新的值递归调用函数。如果您错过了此语句,那么在完成第一行后,它将终止。例如
Armstrong_Number(Number //10, Times)
数量= 153
那么输出= 27
让我们看看上面指定的功能 里面的 If 语句
如果(数字> 0),检查数字是否大于 0。对于递归函数,在递归使用函数之前放置一个条件是很重要的。否则,我们最终会陷入无限执行(就像无限循环一样)。
寻找 1 到 n 之间的阿姆斯特朗数的 Python 程序
该程序允许您输入最小值和最大值。这个 Python 程序返回介于最小值和最大值之间的阿姆斯特朗数。
python 程序中阿姆斯特朗数的前两个语句允许用户输入最小值和最大值。
循环的Python有助于最小和最大变量之间的迭代。迭代从最小值开始,然后不会超过最大值变量。
if(Number = = Sum)-–条件检查该整数中每个数字的幂 N 之和是否等于给定的数字。当条件为真时,它是阿姆斯特朗,否则它不是。
如果该条件为真,则打印该数字。
Minimum = int(input("Please Enter the Minimum Value: "))
Maximum = int(input("\n Please Enter the Maximum Value: "))
for Number in range(Minimum, Maximum + 1):
Sum = 0
Times = 0
Temp = Number
while Temp > 0:
Times = Times + 1
Temp = Temp // 10
Temp = Number
while Temp > 0:
Reminder = Temp % 10
Sum = Sum + (Reminder ** Times)
Temp //= 10
if Number == Sum:
print(Number)
阿姆斯特朗的输出从 10 到 10000
Please Enter the Minimum Value: 10
Please Enter the Maximum Value: 10000
153
370
371
407
1634
8208
9474