求水仙花数,程序运行之后多一个370
for i in range(100, 1000):b = 0 #用于求各位数的立方之和
for x in str(i):
b += int(x)**3
if b == i:
print(i) 你程序中的 `if b == i` 应该在内层循环结束之后再进行判断。否则会在还没有计算完所有位数立方和时就进行判断,导致漏掉一些水仙花数。修正后的程序如下:
for i in range(100, 1000):
b = 0# 用于求各位数的立方之和
for x in str(i):
b += int(x)**3
if b == i:
print(i)
现在这个程序会正确输出所有三位数的水仙花数,包括370。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 if 向左一格u for i in range(100, 1000):
b = 0 #用于求各位数的立方之和
for x in str(i):
b += int(x)**3
if b == i: # 判断应该在内层循环结束后,而不是在其内部
print(i) FishC 发表于 2024-9-14 21:16
你程序中的 `if b == i` 应该在内层循环结束之后再进行判断。否则会在还没有计算完所有位数立方和时就进行 ...
感谢 Jzz099987 发表于 2024-09-16 09:47
感谢
明白了。以下是修正后的代码,确保输出所有三位数的水仙花数,包括370:
for i in range(100, 1000):
b = 0# 用于求各位数的立方之和
for x in str(i):
b += int(x)**3
if b == i:
print(i)
这个程序会正确输出所有三位数的水仙花数。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]