递归函数
什么是递归函数
- 如果在一个函数的函数体内调用了该函数本身,这个函数就称为递归函数
递归的组成部分
递归的调用过程
- 每递归调用一次函数,都会在栈内存分配一个栈帧
- 每执行完一次函数,都会释放相应的空间
递归的优缺点
# 求6的阶乘
def fac(n):
if n == 1:
return 1
else:
return n*fac(n-1)
print(fac(6))
720
斐波那契数列
# 斐波那契数列:1,1,2,3,5,8....(除第一第二位,其余为前两项之和)
def fib(n):
if n == 1:
return 1
elif n == 2:
return 1
else:
return fib(n-1)+fib(n-2)
print(fib(6))
# 输出该数列前六位
for i in range(1, 7):
print(fib(i))
8
1
1
2
3
5
8
函数总结