阿姆斯特朗号蟒蛇



Que:打印1042000到702648265范围内的第一个Armstrong数,遇到第一个Armstrong数后立即退出循环。循环时使用

这是我的代码:

upper = 702648265
lowers=1042000
for num in range (lower, upper + 1):
o= len (str(num))
sum = 0
temp = num
while temp > 0:
x = temp % 10
sum += x ** o
temp //= 10
if num == sum:
print(num)
break

输出:

1741725

我在输出中得到了1741725个答案。但当我在数学上检查阿姆斯特朗的数字时,它的答案是错误的。我想用数学方法纠正我的代码,所以告诉我我的错误?

答案是正确的。但是,您的代码需要进行一些更正。

您的代码:

upper = 702648265
lowers=1042000
for num in range (lower, upper + 1):

更正代码:

upper = 702648265
lowers=1042000
for num in range (lowers, upper + 1): #it should be lowers instead of lower

这里o是7。所以你必须计算每个数字的7次方

1 ^ 7 + 7 ^ 7 + 4 ^ 7 + 1 ^ 7 + 7 ^ 7 + 2 ^ 7 + 5 ^ 7
= 1 + 823543 + 16384 + 1 + 823543 + 128 + 78125
= 1741725

所以答案是正确的。

相关内容

最新更新