求一个Collatz猜想序列的长度

  • 本文关键字:猜想 Collatz 一个 python
  • 更新时间 :
  • 英文 :


我试图找到Collatz猜想序列的长度,但我的答案是错误的。。。。我的代码出了什么问题?我在网上找不到相关的解决方案。。。

a=int(input())
mylist=[]
while a != 1:
if a%2 == 0:
a = a/2
else:
a = a*3 + 1
mylist.append(a)
print(len(mylist))

输入:6

输出:2

如果我输入6,答案应该是9。我正试图把它们放进一个列表中,然后找出列表的长度。

缩进关闭:

a=int(input())
6
mylist=[]
while a != 1:
if a%2 == 0:
a = a/2
else:
a = a*3 + 1
mylist.append(a) # HERE
print(len(mylist))

Python使用缩进来区分代码块。由于缩进错误,mylist.append(a)将只在else分支中运行,并且不会添加任何偶数。您可以打印mylist并注意到这一点。

此外,最好使用//(整数除法(而不是/(浮点除法(来保持a为整数。

最新更新