引入:把大问题拆成小问题
前面我们写的函数都是“直线式”执行的:调用一个函数,它做完自己的事,返回结果,然后继续往下走。但有一类问题,解决它的思路和解决一个更小的同类问题一模一样。比如算 5 的阶乘,其实只需要知道 4 的阶乘再乘 5;算 4 的阶乘,又只需要知道 3 的阶乘。
这种“自己调用自己”的编程技巧就叫递归。它看起来很玄,但理解之后非常强大。
学习目标
- 理解递归的定义和思想。
- 掌握递归三要素:终止条件、递归关系、向终止条件收敛。
- 理解函数调用栈的执行过程。
- 能比较递归与循环的优劣。
- 知道递归可能带来的栈溢出风险。
2026/7/11大约 8 分钟