#544. 202312中国电子学会Python编程等级测试四级(编程题3)

202312中国电子学会Python编程等级测试四级(编程题3)

数学证明问题

上世纪中期,校园里流行一种数学游戏,其规则十分简单:任意取一个自然数,若它是奇数,则把它乘以3加上1,若它是偶数,则除以2。按此规则进行下去,经过若干步的计算就能得到自然数1。这个数学现象至今都没有得到完全的证明,但是可以编程来验证它的正确性。 实现上述功能的部分程序代码如下,请补充完成空白处的内容。

数学证明问题
上世纪中期,校园里流行一种数学游戏,其规则十分简单:任意取一个自然数,若它是奇数,则把它乘以3加上1,若它是偶数,则除以2。按此规则进行下去,经过若干步的计算就能得到自然数1。这个数学现象至今都没有得到完全的证明,但是可以编程来验证它的正确性。
实现上述功能的部分程序代码如下,请补充完成空白处的内容。
step = 1
midlist = []
 
def subwork(n):
    global step
    if n == 1:
        return step
    elif n % 2 == 0:
        n =         ①          
        midlist. append(n)    
        step +=  1
        subwork(        ②        ) 
        return step
    elif n % 2 != 0:
        n =         ③              
        midlist.        ④         
        step +=  1
        subwork(        ⑤        )  
        return step
   
cur_num = int(input("请输入一个数字:"))
subwork(cur_num)
print(midlist)
print(step)

说明

复制代码,提交代码