数列python_Python实现collatz 数列

精进dynamo,免不了要用到python。最近好几个朋友都跟我探讨了python相关的问题。我赶紧找本书来学习一下python.在<>书里有个习题:用Python实现collatz 数列

编写一个名为 collatz()的函数,它有一个名为 number 的参数。如果参数是偶数,那么 collatz()就打印出 number //2,并返回该值。如果 number 是奇数,collatz()就打印并返回3 * number +1。然后编写一个程序,让用户输入一个整数,并不断对这个数调用 collatz(),直到函数返回值1(令人惊奇的是,这个序列对于任何整数都有效,利用这个序列,你迟早会得到1!既使数学家也不能确定为什么。你的程序在研究所谓的“Collatz序列”,它有时候被称为“最简单的、不可能的数学问题”)。

利用我有限的python知识,尝试着写了一代码:

#CAD2BIM 1095 Python 学习 Collatz数列#编写一个名为collatz()的函数,它有一个名为number 的参数。#如果参数是偶数,那么collatz()就返回number除以2#如果number 是奇数,collatz()就打印并返回3* number +1。#然后编写一个程序,让用户输入一个整数,并不断对这个数调用collatz(),直到函数返回值1def collatz(number):if number %2 ==0:print(number /2) number= number /2else:print(3* number +1) number=3 * number +1return numberprint('请随意输入一个整数')try: intNum = int(input())while intNum !=1: intNum = collatz(intNum)continueprint(intnumber)except:pass

这里没有考虑异常。同时假设输入的大于1的整数。

调试结果如下:

5d8680d32a63f30a4a4f860871fb3f6a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值