什么是递归函数
如果一个函数在内部调用自身本身,这个函数就是递归函数
递归函数的结构
包括两部分:
- 退出递归的条件
- 递归的规则
例如:
def fact(n):
if n==1:
return 1
return n * fact(n - 1)
计算fact(5),可以根据函数定义看到计算过程如下:
===> fact(5)
===> 5 * fact(4)
===> 5 * (4 * fact(3))
===> 5 * (4 * (3 * fact(2)))
===> 5 * (4 * (3 * (2 * fact(1))))
===> 5 * (4 * (3 * (2 * 1)))
===> 5 * (4 * (3 * 2))
===> 5 * (4 * 6)
===> 5 * 24
===> 120
注意
使用递归函数需要注意防止栈溢出。 由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。