实践1:Collatz序列
项目要求
- 编写一个名为
collatz()
的函数,它有一个名为number
的参数。如果参数是偶数,那么collatz()就打印出number//2
,并返回该值;如果number
是奇数,collatz()
就打印并返回3*number+1
; - 编写一个小程序,让用户输入一个整数,并不断对这个数调用
collatz()
函数,直到该函数的返回值为1;
代码实现
def collatz(number):
if number % 2 ==0:
num = number//2
print( num)
elif number % 2 == 1:
num =3 * number + 1
print(num)
return num
def normal():
number = int(input())
while number != 1:
number = collatz(number)
print('Done')
# Starting...
print('Enter a interger number:' )
while True:
try:
normal()
break
except:
print('Error:Type error,only int are allowed.')
print('Please try agin!')
continue
课外扩展
令人惊奇的是,这个序列对于任何整数都有效,利用这个序列,你迟早会得到1!既使数学家也不能确定为什么。你的程序在研究所谓的“Collatz序列”,它有时候被称为“最简单的、不可能的数学问题”