2017-06-29 49 views
-2

試圖編寫Collat​​z序列程序與「使用python無聊的東西」的指導方針,我試圖找出是否有辦法編寫它而不必定義一個全局變量。可能沒有全局變量的Collat​​z序列?

def collatz(number): 
    if number % 2 == 0: 
     print(number // 2) 
     return number // 2 

    elif number % 2 == 1: 
     print(3 * number + 1) 
     return 3 * number + 1 

while number != 1: 
    collatz(int(input())) 

我想跟隨他從幾頁後傾,以試圖限制全局變量的使用,但我似乎無法找到一個解決這個無功能之前定義number然後將其稱爲函數內的全局變量。

回答

0
def collatz(n): 
    while n > 1: 
     print (n) 
     if n % 2 == 1: 
      n = 3 * n + 1 
     else: 
      n = n // 2 

    print (n) 

叫它:

collatz(101)