为啥会多了一个370,有解惑的吗?
y=list(range(100,1000))
for x in y:
i = 0
for b in str(x):
b=int(b)
i=i+b**3
if i==int(x):
print("是水仙数的有:",int(x))
应该是因为那个if的缩进不对,如果把if放到for循环里,因为判断水仙花数370时,因为它的个位是0,所以在计算完十位时会打印一次,在计算完个位时又打印一次,所以就出现了打印两次370,把if放到第二个for循环后面即可,修改如下:
y=list(range(100,1000))
for x in y:
i = 0
for b in str(x):
b=int(b)
i=i+b**3
if i==int(x):
print("是水仙数的有:",int(x))