擅长:python、mysql、java
<p>你的问题是,你必须很好地学习所有的递归故事,这需要时间。。。你必须把程序在每一步中执行的内容形象化。我的建议是在每次调用函数时首先绘制堆栈缓冲区</p>
<hr/>
<p>您的问题的解决方案是:</p>
<pre><code>def recursiveFunc(x):
if x == 1:
return 1
elif x > 1 :
return 1 + recursiveFunc(x-1) #This is the part I've changed.
for x in range(1, 101):
print(x, ":", recursiveFunc(x))
</code></pre>
<p>为什么你的手机坏了?因为当函数调用return时,return启动新函数recursiveFunc(x)。。。但和以前一样!所以有一个无限循环。
此外,如果你加上像recursiveFunc(x+1)和你传递的x是正的,你将永远不会进行比较x==0,因为x是不断增长的调用。你知道吗</p>