我做了一个代码,测量在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。我想这是很容易的代码是什么错误,看看。我该如何解决这个问题?如何在每次命令完成时计数器复位,而不是在函数运行时复位。
这做到了。谢谢!要尽快标记为答案 –