我现在正在学习递归,俗话说,精通递归的最好方法是尽可能多地练习。我有在纸上跟踪程序的习惯(我想我们所有人都曾有过)。
例如,如果我有一个功能,比如打印一个从 1 到 10 的数字:
def print_n():
for i in range(1,11):
print i
我会像这样追踪:
i
.......
1
2
3
4
... and so on
但是当我练习递归时,我发现很难在纸上跟踪程序。有人可以举个例子推荐一种在纸上跟踪递归函数的最佳方法吗?您可以使用以下斐波那契(再次!!!)来说明您的示例,否则您可能会让读者感到惊讶。
#RECURSIVE FUNCTION TO RETURN Nth FIBONACCI NUMBER
def fib(n):
if n is 0 or n is 1:
return 1
else:
return fib(n-1) + fib(n-2)