【发布时间】:2019-06-07 19:58:42
【问题描述】:
https://projecteuler.net/problem=14
我有一个程序可以计算每个数字的 collatz 序列的长度。 我尝试使用较小的数字来查看是否是因为我的程序太慢但即使那样程序也永远不会停止。为什么?我只能认为我的 while 循环永远不会停止,但它应该给出问题。谢谢。
count = 0
count1 = 0
for n in range(2,10):
count = 0
j = n
while j != 1:
if j%2 == 0:
j = j/2
if j%2 != 0:
j = 3*j+1
count += 1
if count > count1:
count1 = count
print (count1)
【问题讨论】:
-
这是一个熟悉调试器的好机会。尝试查看您的 IDE 是否有调试器并设置一些断点。它会让你“暂停”你的代码,让你看看每一步都有哪些变量。 剧透:将您的第二个
if更改为elif。