递归函数

如果一个函数的函数体内调用了函数本身,这个函数称为递归函数。

递归的基本信息

递归函数组成部分:

  • 递归调用
  • 递归终止条件

递归的调用过程:

  • 每递归调用一次函数,都会在栈内存分配一个栈帧
  • 每执行完一次函数,都会释放对应的空间

递归的优缺点:

优点缺点
思路、代码简单占用内存多、效率低

代码示例:

  1. 计算数字的阶乘
def fac(n):
    if n == 1:
        return 1
    else:
        return n*fac(n-1)


print(fac(6))  # 720
  1. 斐波那契数列
def fin(n):
    if n == 1 or n == 2:
        return 1
    else:
        return fin(n-1) + fin(n-2)


print(fin(6))  # 8

# 遍历输出斐波那契数列
for item in range(1, 7):
    print(fin(item), end='\t')  # 1    1    2    3    5    8

泡琳
0 声望0 粉丝

慢慢成长吧