38.数学证明问题上世纪中期,校园里流行一种数学游戏,其规则十分简单:任意取一个自然数,若它是奇数,则把它乘以3加上1,若它是偶数,则除以2。按此规则进行下去,经过若干步的计算就能得到自然数1。这个数学现象至今都没有得到完全的证明,但是可以编程来验证它的正确性。实现上述功能的部分程序代码如下,请补充完成空白处的内容。step = 1midlist = [] 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)
【喵呜刷题小喵解析】:根据题目描述,这是一个数学游戏,其规则是:任意取一个自然数,若它是奇数,则把它乘以3加上1,若它是偶数,则除以2。我们需要补充完成空白处的内容,以完成这个数学游戏的程序实现。1. 对于偶数的处理:* 偶数除以2得到一个新的偶数,所以需要补充的是`n = n / 2`。* 将新的偶数添加到`midlist`列表中,即`midlist.append(n)`。* 递归调用`subwork`函数,并传入新的偶数,即`subwork(n // 2)`。2. 对于奇数的处理:* 奇数乘以3再加上1得到一个新的奇数,所以需要补充的是`n = 3 * n + 1`。* 将新的奇数添加到`midlist`列表中,即`midlist.append(n)`。* 递归调用`subwork`函数,并传入新的奇数,即`subwork(n)`。根据以上分析,我们补充了空白处的内容,完成了这个数学游戏的程序实现。