刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

38.数学证明问题
上世纪中期,校园里流行一种数学游戏,其规则十分简单:任意取一个自然数,若它是奇数,则把它乘以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)

使用微信搜索喵呜刷题,轻松应对考试!

答案:

① n = n / 2② n // 2③ n = 3 * n + 1④ append(n)⑤ n // 2

解析:

【喵呜刷题小喵解析】:

根据题目描述,这是一个数学游戏,其规则是:任意取一个自然数,若它是奇数,则把它乘以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)`。

根据以上分析,我们补充了空白处的内容,完成了这个数学游戏的程序实现。
创作类型:
原创

本文链接:38.数学证明问题上世纪中期,校园里流行一种数学游戏,其规则十分简单:任意取一个自然数,若它是奇数,

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share