第 113 课
递归终止条件
🟢 入门 约 5 分钟
一句话理解
终止条件是递归不再往下调用的出口。
为什么要学
没有出口就会无限递归,RE 或 TLE。
讲解
通常处理最小规模:n=0、空数组、走到终点。要写在递归调用之前。
出口可以有多个。先写出口,再写递归,是好习惯。
例子
int f(int n) {
if (n <= 1) return 1; // 出口
return f(n - 1) + f(n - 2);
}
n<=1 直接返回,不再调用自己。
常见错误
- 出口写错成 n==0,但有人从 1 调到负数。用 n<=1 更稳。
- 出口放在递归调用后面,永远走不到。
练习 做完再看下一课
递归最容易爆栈的原因往往是?
无限递归会撑爆调用栈。
在线练习 C++ 在浏览器里编译,代码不会上传 已通过
Ctrl / ⌘ + Enter 运行 · Tab 缩进
隐藏测试点只是界面不展示数据。题目 JSON 会下发到浏览器,可在开发者工具里看到,只适合自学,不是正式比赛评测。
进度保存在本机浏览器里。
左右方向键也可翻课