num=int(input("please enter number: "))
for num in range(num, 1000):
sum1=0
numcp=num
if(num>=10 and num<100):
while(num>0):
digit=int(num%10)
d2=digit*digit
sum1=sum1+d2
num=int(num/10)
if(num>=100 and num<1000):
while(num>0):
digit=int(num%10)
d2=digit*digit*digit
sum1=sum1+d2
num=int(num/10)
if(numcp==sum1):
print("angstrong number: ", sum1)
这个python代码有什么问题。它工作到407然后停止。我不明白为什么当我提供的范围是1000时它会停止。在
已编辑
在100000或1000000之前,还有其他更像Python的方法。在
我不想复制这个if块(if(num>;=10和num<;100))很多次,因为它决定了位数。在
用
String
遍历String
中的每个字符是很简单且可读的。如果您将输入数字转换为String
,那么迭代数字并计算一个数字是否为Armstrong Number将变得非常简单看看这个简单的解决方案:
这是一种新方法
Armstrong numbers?到目前为止你似乎是对的
如果你想知道你是否到达终点,你应该把
循环后
相关问题 更多 >
编程相关推荐