Python小达人
Python课程记录在此!我从基础开始学,基本功很扎实~

Python编程_冰雹猜想 练习题

20世纪30年代,德国汉堡大学的学生考拉兹研究过这个问题。1952年一位英国数学家独立发现了它,几年之后又被一位美国数学家所发现。在日本,这个问题最早是由角谷静夫介绍到日本的,所以日本人称它为“角谷猜想”。人们在运算过程中发现,算出来的数字忽大忽小,有的计算过程很长。比如从27算到1,需要112步。有人把演算过程形容为云中的小水滴,在高空气流的作用下,忽高忽低,遇冷结冰,体积越来越大,最后变成冰雹落了下来,而演算的数字最后也像冰雹一样掉了下来,变成了1。

因此人们又给这个猜想起了个形象的名字——冰雹猜想。

'''
冰雹猜想,对于每一个正整数,如果它是奇数,则对它乘3再加1,
如果它是偶数,则对它除以2,如此循环,最终都能够得到1。
输入一个数n,输出变换序列。

如n=6,得出序列6,3,10,5,16,8,4,2,1
'''
def judage(n):
    while n > 1:
        if n % 2 != 0:
            n = int(n * 3 + 1)
            print(n)
        elif n % 2 == 0:   # 这里也可以直接用 else 吧,都是其他情况,自己可以按自己的思路写
            n = int(n / 2)
            print(n)

def main():
    n = int(input("请输入一个正整数:"))
    judage(n)
main()





 

发表评论

您的电子邮箱地址不会被公开。