1、什么是递归函数
如果一个函数的函数体内调用了该函数本身,这个函数就称为递归函数
实列:使用递归实现一个阶乘 5*4*3*2*1
def fun(a):
if a==1:
return 1 #终止条件
else:
return a*fun(a-1) #递归调用
print(fun(5))
*************************
120
分析:
当输入值5时,按照递归依次带入到函数中
5 * (4 * (3*(2*fun(1))))
因为fun(1)==1
最终结果就 输出结果120
2、递归的组成部分
递归调用与递归终止条件
3、递归的调用过程
- 每递归调用一次函数,都会在栈内存分配一个栈帧
- 每执行完一次函数,都会释放相应的空间。
4、递归的优缺点
- 缺点:占用内存多,效率低下
- 优点:思路和代码简单
5、实现斐波那契数列
斐波那契数列: 1 1 2 3 5 8 13 … 满足前两位的整数之和等于第三位
## 斐波那契数列
def fb(n):
if n==1:
return 1
if n==2:
return 1
else:
return fb(n-1)+fb(n-2)
print(fb(7)) # 13
#打印所有的数
for i in range(1,8):
print(fib(i),end='\t')
1 1 2 3 5 8 13