为什么会显示两个370,请大神指导,谢谢
Sum = 0for i in range(100,1000):
m = str(i)
for t in m:
Sum +=int(t)**3
if Sum == i:
print(Sum)
Sum = 0
for i in range(100,1000):
Sum = 0
m = str(i)
for t in m:
Sum += int(t)**3
if Sum == i:
print(Sum)
break
本帖最后由 Twilight6 于 2020-5-21 20:21 编辑
开始遍历 字符串 '370'
先 3
3 ** 3 = 27
循环遍历到 7 时候
7 ** 3 = 343
Sum = 370
这两个相加已经等于370了 所以符合 Sum == i 条件 打印一次 370
然后继续遍历 0
0 ** 3 = 0
Sum = 370导致再次打印
把第二个for循环的if移到第一个for循环的if 下即可
Sum = 0
for i in range(100,1000):
m = str(i)
for t in m:
Sum +=int(t)**3
if Sum == i:
print(Sum)
Sum = 0 Twilight6 发表于 2020-5-21 19:17
开始遍历 字符串 '370'
先 3
谢谢
页:
[1]