阶乘的求解 #
- 斐波那契数列递归函数的定义
- 斐波那契数列递归的拆解
- 递归的出口
斐波那契数列的介绍 #
def f(n):#f(n)函数功能:返回第n个斐波那契数,参数为n pass
递归的拆解 #
事实上该数列的递归拆解在定义中已经体现,即f(n)=f(n-1)+f(n-2),其实就是f(n)的递推表达式。这也为我们数学问题的递归拆解提供了一个思路,即找到问题的递推表达式
def f(n): s= f(n-1)+f(n-2)#递归函数地拆解 return s
递归的出口 #
根据斐波那契数列的定义,可以看到这里递归的边界条件有两个即n=1时或者n=2时,f(1)=1,f(2)=1。根据边界条件将n=1或者n=2作为递归函数的出口。
def f(n): if n==1 or n==2: return 1 #递归的出口 s= f(n-1)+f(n-2)#递归的拆解 return s
小结 #
习题 #
- 画出上例中f(6)递归调用执行过程图
- 使用递推的算法实现f(n)的功能,并说一说与递归算法有什么不同