python程式-->Collatz 序列問題
阿新 • • 發佈:2019-01-25
這個問題是某本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))