我的阿姆斯特朗号码程序存在逻辑错误

时间:2016-06-09 10:36:22

标签: python-3.x

此代码始终仅在输出中显示else语句,即使用户输入了一个非常强的数字。我的if-else声明有问题吗? 我已经尝试正确地缩进它,检查语法。

num=int(input("enter number :   "))
num1=num
sum=0
while(num!=0):
    sum+=(num%10)**3
    num/=10

if(sum==num1):
    print(sum," is an armstrong number ")
else:
    print("go find another number")

1 个答案:

答案 0 :(得分:0)

你正在使用浮点除法。您应该使用楼层划分//。然后根据数字的长度计算指数,这样就适用于不同长度的Armstrong数字(不仅仅是3):

num = int(input("enter number :   "))
num1 = num
sum = 0
exp = len(str(num))
while(num != 0):
   sum += (num % 10) ** exp
   num //= 10 # here

if(sum == num1):
   print(sum," is an armstrong number ")
else:
   print("go find another number")