Python实现《角谷猜想》

m0_65320380 2022-04-02 19:43:15
加精

 《角谷猜想》

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

实现目的: 

1.输入一个正整数
2.如果n为偶数,就将它变为n/2,
3.如果除后变为奇数,则将它乘3加1(即3n+1)。不断重复这样的运算,经过有限步后,必然会得到1。
4.本实例要求编写代码,计算用户输入的数据按照以上规律经多少次运算后可变为1。

逐步解析:

1.定义变量

def sum1(n):    # 定义函数
    i = 0       # 记次数
    g = n       # 存储初始数

 2.达到一定条件时跳出循环 

while n != 1:    # 等于1时跳出循环

 3.根据题意得到算法

n % 2 == 0:   # 偶数时执行
n = n / 2    # 则将它变为n/2
    
n = n * 3 + 1   # 奇数时则将它乘3加1(即3n+1)

4. 输出结果

print('%d经过%d次达到1' % (g, i))

sum1(int(input('请输入一个正整数:')))  # 调用函数

 完整代码:

def sum(n):    # 定义函数
    i = 0       # 记次数
    g = n       # 存储初始数
    while n != 1:    # 等于1时跳出循环
        if n % 2 == 0:   # 偶数时执行
            n = n / 2    # 则将它变为n/2
            i += 1       # 次数+1
        else:
            n = n * 3 + 1   # 奇数时则将它乘3加1(即3n+1)
            i += 1          # 次数+1
    print('%d经过%d次达到1' % (g, i))


sum(int(input('请输入一个正整数:')))  # 调用函数

 实现结果:

 

 

 

看到这啦,点个赞再走叭~~ 

...全文
3642 1 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
抱枕 2022-04-02
  • 打赏
  • 举报
回复 1

very nice!

相关推荐
发帖
江信Python研究社区

191

社区成员

一个专注于研究python语言的社区
软件工程 高校
社区管理员
  • 勤奋龙
  • 没有一分是自己的
  • Rye758
加入社区
帖子事件
创建了帖子
2022-04-02 19:43
社区公告
暂无公告