Skip to content

递归函数 ​

递归(Recursion) 是指函数直接或间接地调用自身来解决问题的一种方法。 递归解决的问题通常具有重复结构,即大问题可以分解为小问题的子问题。

cpp
// 递归函数定义形式
返回类型 函数名(参数列表) {
    if (终止条件)
        return 结果;
    else
        return 自身调用(...);
}

递归核心思想 ​

  • 终止条件 (Base Case): 防止无限递归,必须存在明确的结束条件。
  • 递归关系 (Recursive Case): 将大问题逐步分解为更小的问题,直到满足终止条件。
cpp
int factorial(int n) {
    if (n == 1) return 1;                // 终止条件
    return n * factorial(n - 1);         // 递归调用
}

递归与循环比较 ​

对比项递归循环
原理函数调用自身使用for/while迭代
性能较低(调用栈消耗大)较高
可读性更贴近数学思维更接近过程控制
应用分治、树结构、图遍历等计数、线性处理