什么是递归函数

如果一个函数在内部调用自身本身,这个函数就是递归函数

递归函数的结构

包括两部分:

  1. 退出递归的条件
  2. 递归的规则

例如:

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

注意

使用递归函数需要注意防止栈溢出。 由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。

results matching ""

    No results matching ""