【发布时间】:2021-07-31 22:28:10
【问题描述】:
这是我的第一篇论坛帖子,我对编码还很陌生。
我的代码有问题。我最近在 YouTube 上观看了 Veritasium 的视频,他在视频中谈到了 3x+1 定理。我决定用我新发现的知识做一些有趣的事情,并使用 python 和 turtle 制作一个可视化器。但是,每次我运行它时,网页(我为此使用 Codehs)都会冻结。这是我的代码。
highestnum = 1
numchosen = int(input("starting number? "))
rounds = 1
def odd(num):
return (num*3)+1
def even(num):
return num*2
while True:
if numchosen%2 == 0:
numchosen = even(numchosen)
else:
numchosen = odd(numchosen)
if numchosen > highestnum:
highestnum = numchosen
if numchosen == 1:
break
print("highest number: " + str(highestnum))
print("number of changes: " + str(rounds))
请只回答我所说的这次崩溃,而不是我应该做的任何优化。
【问题讨论】:
-
除了
dividing by 2,在循环内你可能想要增加rounds变量以避免它卡在1。此外,请注意,这不是一个定理,而是一个猜想。此外,没有崩溃,它只是永远运行。