2017-08-03 8 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

ありがとう! –

関連する問題