检查以下代码:
>>> def fib(x):
... if x == 0 or x == 1:
... return 1
... else:
... return fib(x-1) + fib(x-2)
>>> print(fib(4))
Run Code Online (Sandbox Code Playgroud)
根据 SoloLearn Python tutorial (for Recursion) 中的注释,代码是这样工作的:
1. fib(4) = fib(3) + fib(2)
2. = (fib(2) + fib(1)) + (fib(1) + fib(0))
3. = fib(1) + fib(0) + fib(1) + fib(1) + fib(0)
4. = 1+ 1 + 1 + 1 + 1
5. = 5
Run Code Online (Sandbox Code Playgroud)
在第 2 行之后,只fib(2)应该去fib()函数的 else 部分,对吗?这两个 …