这个问题是某本python书籍课后实践项目题,不过没给答案
内容大致如下:
编写一个名为collatz()的函数,有一个名为number的参数。如果参数是偶数,那么collatz()就打印number / /2 ,并返回其值。如果number是奇数,collatz()就打印并返回3 *number +1
改成程序,让用户输入任意一个数,通过对该数字不断调用collatz(),直到返回1,(为什么返回1,数学家也很困惑)
大概就是这样的,数字随意输入
Enter number:
3
10
5
16
8
4
2
1
代码如下:
def collatz(number):
if number % 2 == 0:
return number // 2
else:
return 3 * number +1
number = int(input())
while True:
number = collatz(number)
print(str(number))
if number == 1:
break
print(str(number))