第九讲第一题不知道为啥会这样
print("------------------------------100~999水仙花数------------------------------")for num in range(100,1000):
result = 0
for i in str(num):
result += int(i) ** 3
if num == result:
print(num)
运行以后是153 370 370 371 407 不知道为什么会出现两个370 本帖最后由 Twilight6 于 2020-7-2 13:14 编辑
你试着代入就知道为什么了,当循环到 370 时候:
第一次循环 result 开始时等于 0 先加上 3 的 3次方 等于 27
第二次循环 result 等于 27 加上 7 的 三次方 等于 27+343这个时候已经等于了370 满足了 if 条件 进行一次打印
第三次循环 result 最后循环到了 0 的三次方 ,370+0还是等于370,再次满足 if 条件 进行一次打印
楼上正解,把代码改成这样就行:
print("------------------------------100~999水仙花数------------------------------")
for num in range(100,1000):
result = 0
for i in str(num):
result += int(i) ** 3
if num == result:
print(num)
break Twilight6 发表于 2020-7-2 13:10
你试着代入就知道为什么了,当循环到 370 时候:
第一次循环 result 开始时等于 0 先加上 3 的 3 ...
噢 明白了 谢谢 qiuyouzhi 发表于 2020-7-2 13:15
楼上正解,把代码改成这样就行:
谢谢
页:
[1]