上一篇: Python编程竞赛试题:逢7必过

Python编程竞赛试题:角谷猜想验证

试题

角谷猜想是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。

请使用Python编程实现对角谷猜想算法,要求对输入的任何正整数进行验证计算,输出计算过程和计算次数。

 

 

答案

c=0 #计数为0
x = int(input("大于1的自然数:"))
while x != 1:
#当x不等于 1的时候
    if x%2==0:
        #x:偶数
        print("%d//2=%d" % (x, x//2)) # 输出对应式子
        # 更新数字
        x=x//2
    else:
        print("%d*3+1=%d" % (x,x*3+1)) #输出对应式子
        # 更新数字
        x=x*3+1
    # 每变换1次,计数+1
    c+=1
#输出次数
print("变换次数",c)

 

输出结果

大于1的自然数:50
50//2=25
25*3+1=76
76//2=38
38//2=19
19*3+1=58
58//2=29
29*3+1=88
88//2=44
44//2=22
22//2=11
11*3+1=34
34//2=17
17*3+1=52
52//2=26
26//2=13
13*3+1=40
40//2=20
20//2=10
10//2=5
5*3+1=16
16//2=8
8//2=4
4//2=2
2//2=1
变换次数 24

 

Copyright@2023-2004 少年编程竞赛网版权所有
转载本站任何内容请注明出处
苏ICP备2023040873号-1
网站地图