斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:
- F(1)=1
- F(2)=1
- F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
其实这个数列就是后一个数等于前面两个数的和,利用递归实现起来非常简单。
def calculate(i):
if i==0:
return 0
elif i==1:
return 1
elif i>1:
return calculate(i-2)+calculate(i-1)
for j in range(0,10):
print(calculate(j))
输出结果:
0
1
1
2
3
5
8
13
21
34
在高级语言中,函数调用自己和调用其他函数并没有本质不同。我们把一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称为递归函数。不过写递归程序最怕的就是陷入永不结束的无穷递归中。所以递归必须定义一个终止条件。