2017-08-03 13 views
0

Ich möchte diesen Code mit der Eingabe n = 12 ausführen. Warum entstehen Fehler?ein einfacher Python-Code Debugging

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

Warum werden * was * Fehler generiert? –

Antwort

0

Um Rekursion zu arbeiten, müssen Sie Fortschritte bei der Beendigung machen (wo ein rekursiver Aufruf tut nicht gemacht werden). Wenn n> = 12 ist, ist temp ein Wert, der größer als 12 ist, und somit wird die Rekursion niemals beendet (zumindest solange, bis Sie Pythons Rekursionstiefe erreicht haben).

Also entweder ist Ihr Algorithmus schlecht, oder seine Implementierung ist.

+0

vielen dank! –