我是 Python 新手,并且已经使用它一段时间了,但我遇到了一个问题。这是我的代码:
def collatz(num,ctr):
if(num != 1):
ctr+=1
if(num%2==0):
collatz(num/2,ctr)
else:
collatz(num*3+1,ctr)
return ctr
test=collatz(9,0)
对于我输入的任何数字num
,比方说9
例如,和0
for ctr
, ctr
总是出现1
。我使用的是ctr
变量错了?
编辑:
我试图打印出该函数递归了多少次。所以ctr
将是每个递归的计数器。
我更改了您的递归调用,将从递归调用返回的值设置为 ctr。按照您编写的方式,您正在丢弃从递归中返回的值。
def collatz(num,ctr):
if(num != 1):
ctr+=1
if(num%2==0):
ctr=collatz(num/2,ctr)
else:
ctr=collatz(num*3+1,ctr)
return ctr
test=collatz(9,0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)