此代码始终仅在输出中显示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")
答案 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")