我做了一個代碼,測量在Collatz猜想中返回1所需的步驟數。這裏是我的代碼重置Collatz計數器每個新的遞歸
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))
我希望最後的兩個打印命令打印311和311相反,他們打印311和622。我想這是很容易的代碼是什麼錯誤,看看。我該如何解決這個問題?如何在每次命令完成時計數器復位,而不是在函數運行時復位。
這做到了。謝謝!要儘快標記爲答案 –