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

简答题

38.角谷猜想
所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。程序要求输入一个整数,求经过多少次可得到自然数1。 根据题意,请完善划线处的代码。
def fun(n, cnt):
if ① :
​ print(cnt)
​ return
else:
​ if n % 2 == 0:
​ n //=2
​ ②
​ else:
​ ③
​ fun(n, cnt+1)
fun(5, ④ )

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

答案:

解析:

这是一个关于角谷猜想的编程题目。根据题目描述,我们需要完善一个递归函数,该函数接受一个整数n和一个计数器cnt,当n变为1时,打印计数器并返回,否则根据n的奇偶性进行相应的操作并递归调用函数。

对于划线处的代码解析如下:

if n == 1::这是判断终止条件,当n变为1时,打印计数器并返回。因为题目要求得到自然数1时的计算次数,所以这里需要判断n是否等于1。

fun(n, cnt):这是递归调用函数的部分,当n为偶数时,将n除以2后,需要再次调用函数并更新计数器。

else: n *= 3 + 1:这是处理奇数n的部分,当n为奇数时,将其乘以3再加1后,再次递归调用函数。这是根据角谷猜想的规则进行的操作。

fun(5, 0):这是初始调用函数的部分,输入整数为5,初始计数器为0。因为初始时还没有计算次数,所以计数器初始值为0。

创作类型:
原创

本文链接:38.角谷猜想所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得

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

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

分享考题
share