擅长:python、mysql、java
<p>注释的汇编示例:</p>
<pre><code>def power(a, b):
if b == 0:
return 1
return a * power(a, b - 1)
</code></pre>
<p>递归需要一个<em>基本情况</em>——它告诉程序“嘿,这是你应该做的。开始退货吧!”你知道吗</p>
<p>Edit:无论如何,递归不能保证在Python中得到很好的实现。语言规范没有断言如何处理递归,这意味着深度递归将溢出堆栈。(这与其他语言不同,例如大多数函数式编程语言,其中递归更优化。)在我的计算机上,使用CPython:</p>
<pre><code>>>> def power(a, b):
... if b == 0:
... return 1
... return a * power(a, b - 1)
>>>
>>> power(1, 10)
1
>>> power(1, 981)
1
>>> power(1, 982)
Traceback (most recent call last):
File "<input>", line 1, in <module>
power(1, 982)
File "<input>", line 4, in power
return a * power(a, b - 1)
File "<input>", line 4, in power
return a * power(a, b - 1)
File "<input>", line 4, in power
return a * power(a, b - 1)
[Previous line repeated 978 more times]
File "<input>", line 2, in power
if b == 0:
RecursionError: maximum recursion depth exceeded in comparison
</code></pre>
<p>此外,CPU可能比常规乘法更有效地执行指数运算,因此递归编写此函数可能比使用内置运算符慢。你知道吗</p>