当前分类:python>>正文

python算法:冰雹猜想

来源:互联网   时间:2022年7月17日   编辑

最近看到的一道python算法题:冰雹猜想

做这种算法题,主要是练习思维,在遇到问题的时候,多一种解决方案。

关于冰雹猜想的描述

 

数学家们曾提出一个著名的猜想——冰雹猜想。
对于任意一个正整数 n,如果 n 是偶数,就把它变成 n // 2
如果 n 是奇数,就把它变成 3 * n + 1
按照这个法则运算下去,最终会变成 1
试问,该数通过几轮变换,会变成 1 呢?

例:

输入5

输出为5

原因如下:
第一轮:5*3+1=16
第二轮:16/2=8
第三轮:8/2=4
第四轮:4/2=2
第五轮:2/2=1
答案为 5

下面是我给出的解决办法:

n = eval(input())
num=0
while n !=1:
    if n %2==0:
        n=n//2
    else:
        n=3*n+1
    num+=1
print(num)

 

这个还是属于简易的那种!如果不考虑可读性,基本上2-3行就可以解决问题啦。

 

[猜你喜欢]

标签: python 算法