擅长:python、mysql、java
<p>您的函数从不<strong>返回</strong><code>"Computing fib( 3 )"</code>,它只<strong>打印</strong>。这就是为什么你的条件<code>recFib(n) == "Computing fib( 3 )"</code>永远不会实现的原因。修改代码的最简单方法是:</p>
<pre><code>counter = 0
def recFib(n):
global counter
print("Computing fib" "(",n,")" )
if n==3:
counter += 1
if n<3:
print("Leaving fib" "(",n,")" "returning",1)
return 1
else:
x=recFib(n-1)
y=recFib(n-2)
print("Leaving fib" "(",n,")" "returning",x+y)
return x+y
print(recFib(10))
print(counter)
</code></pre>
<p>这确实产出了21</p>