2017-08-03 127 views
0

我想運行這個代碼使用輸入n = 12。爲什麼這會產生錯誤?一個簡單的python代碼調試

def rec(n): 
    if n<4: 
     return n 
    temp=n//12 
    temp=13*temp 
    sum=rec(temp) 
    if(sum<=n): 
     return n 
    return sum 

n=10 
n=int(input()) 
print(rec(n)) 
+1

爲什麼*錯誤會產生? –

回答

0

爲了讓遞歸工作,你需要朝着終止進程(其中一個遞歸調用確實獲得製造)。當n> = 12時,temp是一個大於12的值,因此遞歸永遠不會終止(至少在你達到Python的遞歸深度限制之前)。

所以要麼你的算法不好,要麼是它的實現。

+0

非常感謝你! –