求这种特殊序列的最大长度起始数
- 当n是偶数时,n的下一个数等于n/2
- 当n是奇数时,n的下一个数等于3*n+1
例如:13->40->20->10->5->16->4->2->1
虽然还没有得到证明,但我们认为任何一个数作为起点,都能最终得到1
求哪一个数作为起点,它能得到最长的序列(在一百万以内)
起点小于一百万,但是中间的数可以大于一百万
原题如下
python代码如下
m = 1;n=1
for i in range(1, 1000000):
a = i
num = 1
while a != 1:
if a % 2 == 0:
a = a / 2
else:
a = a * 3 + 1
num = num + 1
if num > m:
m = num
n=i
print(n)