文章目录 1. 什么是递归? 2. 递归的基本结构 3. 递归的示例 3.1 计算阶乘 输出结果: 代码解析: 3.2 计算斐波那契数列 输出结果: 代码解析: 4. 递归的优缺点 优点: 缺点: 5. 递归的优化 5.1 尾递归优化 5.2 记忆化(Memoization) 6. 示例代码 输出结果: 7. 常见问题 问题 1:递归会导致栈溢出吗? 问题 2:递归和循环哪个效率更高? 问题 3:如何避免递归的重复计算? 8. 扩展练习 1. 什么是递归? 递归是指函数直接或间接调用自身的过程。递归通常用于解决可以分解为相同问题的子问题的情况,例如计算阶乘、斐波那契数列等。 2. 递归的基本结构 递归函数通常包含两个部分: 基准条件(Base Case): 递归终止的条件,防止无限递归。 递归条件(Recursive Case): 函数调用自身,逐步缩小问题规模。 3. 递归的示例 3.1 计算阶乘 阶乘的递归定义如下: 基准条件:0! = 1 递归条件:n! = n * (n-1)! 代码实现: #