考虑一下 Python 中的这个基本递归:
def fibonacci(number):
if number == 0: return 0
elif number == 1:
return 1
else:
return fibonacci(number-1) + fibonacci(number-2)
根据斐波那契数列的 (n-1) + (n-2) 函数,这是有道理的。
Python 如何执行包含不在同一代码行内而是在同一代码行内的另一个递归的递归?'finobacci(number-1)' 是否完成所有递归,直到它达到'1',然后它对 'fibonacci(number-2)' 执行相同操作并添加它们?
为了比较,以下用于将数字 'x' 提升为幂 'y' 的递归函数,我可以理解递归,def power 调用自身直到 y==0 ,因为在一行中只有一个递归调用。仍然不应该所有结果都是'1',因为当y == 0时执行的最后一个命令是'return 1',因此不返回x?
def power(x, y):
if y == 0:
return 1
else:
return x*power(x, y-1)