【基础入门题041】角谷猜想

简介: 【基础入门题041】角谷猜想

【基础入门题】2021.12.07


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


编制一个函数:从输入整数到1的步骤,每一步为一行,每一步都描述计算过程。最后一行输出End;如果输入为1,直接输出End。


编程语言:包括但不限于Python

题目来源:派森特给站每日刷题频道  

————————————————

方法一:while循环

def guess(n):
    while n>1:
        if n%2:
            if n!=1:
                print(f'{n}*3+1->{n*3+1}')
                n = n*3+1
        else:
            print(f'{n}//2->{n//2}')
            n //= 2
    else:
        print('End')
        return
guess(1)
guess(5)
guess(6)
guess(7)
guess(8)



方法二:递归法

def guess(n):
    if n==1:
        print('End')
        return
    if n%2:
        if n!=1:
            print(f'{n}*3+1->{n*3+1}')
            guess(n*3+1)
    else:
        print(f'{n}//2->{n//2}')
        guess(n//2)
guess(1)
guess(5)
guess(6)
guess(7)
guess(8)


两种方法的运行结果一致:

End
5*3+1->16
16//2->8
8//2->4
4//2->2
2//2->1
End
6//2->3
3*3+1->10
10//2->5
5*3+1->16
16//2->8
8//2->4
4//2->2
2//2->1
End
7*3+1->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
End
8//2->4
4//2->2
2//2->1
End


目录
相关文章
|
6月前
|
算法 大数据
实战算法的基础入门(1)
实战算法的基础入门
|
6月前
|
消息中间件 存储 算法
实战算法的基础入门(2)
实战算法的基础入门
|
6月前
|
算法 Java
实战算法的基础入门(3)
实战算法的基础入门
|
8月前
|
存储 安全 Java
Android 面试题及答案整理,最新面试题
Android 面试题及答案整理,最新面试题
215 2
|
SQL 存储 自然语言处理
数据库原理第三章课后题答案(第四版)
数据库原理第三章课后题答案(第四版)
262 0
|
8月前
|
前端开发
【零基础入门前端系列】—复习(十五)
【零基础入门前端系列】—复习(十五)
|
XML 网络协议 Java
Android最新面经,面试题,附答案,赶紧收藏起来吧
Android最新面经,面试题,附答案,赶紧收藏起来吧
|
存储 SQL 安全
数据库原理第一章课后题答案(第四版)
数据库原理第一章课后题答案(第四版)
86 0
|
算法 JavaScript Java
一道Android逆向题的取巧解题思路
一道Android逆向题的取巧解题思路
|
算法 Java Android开发

热门文章

最新文章

下一篇
开通oss服务