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

非常感谢你! –