Ich habe einen Code erstellt, der die Anzahl der Schritte misst, die erforderlich sind, um in einer Collatz Vermutung zu 1 zurückzukehren. Hier ist mein CodeZurücksetzen des Collatz-Zählers bei jeder neuen Rekursion
counter = 0
def collatz(n):
global counter
counter += 1
if n <= 0 :
return "Invalid Number"
elif n == 1 :
return counter
elif n % 2 == 1 :
n = 3*n + 1
return collatz(n)
elif n % 2 == 0 :
n = n/2
return collatz(n)
print(collatz(9921615699))
print(collatz(9921615699))
Ich erwarte, dass die letzten beiden Druckbefehle 311 und 311. Statt zu drucken, drucken sie 311 und 622. Ich denke, das war einfach genug, um den Code zu sehen, was falsch ist. Wie kann ich das beheben? Wie kann der Zähler jedes Mal zurückgesetzt werden, wenn ein Befehl abgeschlossen ist, und nicht, wenn die Funktion ausgeführt wird.
Das tat es. Vielen Dank! Gonna Mark als Ans ASAP –