为什么projecteuler.net问题12的代码不起作用



所以我在python 中写了这个

condition = True
sum = 0
i = 0
arr = []
while condition:
i = i + 1
sum = sum + i
#print(i, sum)
for x in range(1,sum+1):
if sum%x == 0:
arr.append(x)
if len(arr)>=500:
result = sum
condition = False
else:
arr = []
print(arr, result)

但它永远不会结束!你知道我的代码发生了什么吗?

感谢

循环无限运行。

if len(arr)>=500:
result = sum
condition = False
else:
arr = []

这个if-else条件在每次迭代中为else部分运行,并重新初始化数组,因此其长度设置为0。。迭代不断发生,数组不断重新初始化,因此循环无限运行,就像if部分永远不会满足一样。

每次检查arr是否大于500时,如果不是,则将其清除,这意味着它永远不会大于500。

相关内容

最新更新