Python if 语句来查找 Armstrong Numbers


n = int(input("" ""))
l = []
for i in  range(n):
a = int(input())
l.append(a)
s=0
for i in l:
temp = i
while temp>0:
d = temp % 10
s += d**3
temp //= 10
if n == s:
print("yes")
else:
print("no")

如果数字是阿姆斯特朗数字,我正在尝试打印"是",如果不是,则打印"否"。但代码只运行else部分。if部分未执行,请帮忙。

您应该将if n == s:更改为if i == s:因为i是要测试的数字,n是您要测试的数字数。

正如 Damien 所说,s应该为每个i初始化为 0

n = int(input("" ""))
l = []
for i in range(n):
a = int(input())
l.append(a)
for i in l:
s=0
temp = i
while temp>0:
d = temp % 10
s += d**3
temp //= 10
if i == s:
print("yes")
else:
print("no")

测试部分 :

1 # input, n = how many numbers i to test
1 # input, i = number to test
yes # output

最新更新