1
def recursiveadd(x,sum1):
if x > 0:
sum1 += x
recursiveadd(x-1,sum1)
else:
return sum1
print recursiveadd(100,0)
添加之后插入“print sum1”表明sum1正在增加,所以我不明白为什么函数返回None。我唯一能想到的就是sum1在返回之前被重置为0,但我不知道为什么会这样。为什么这个递归求和函数返回None?
跟踪代码,并Look的返回什么,强调*返回*。 – FatalError 2012-02-01 16:46:50
请注意,tail-recursion可能会炸毁python中的堆栈。 – 2012-02-01 16:49:39
@MattFenwick:你可以[不要炸掉堆栈](http://ideone.com/IvIyC) – jfs 2012-02-01 17:39:54