递归简介
本课属于 Coddy C++ 学习旅程的“逻辑与流程”单元。第 45 课,共 56 课。
递归是一种编程技巧,函数通过调用自身来解决问题。递归函数不使用循环,而是将复杂问题分解成更小的相似子问题,直到遇到可以直接解决的简单情况。
每个递归函数都必须包含两个必要部分。基本情况是停止递归的条件,没有它,函数就会永远调用自身。递归步骤是函数使用修改后的参数调用自身的部分,每次调用都会更接近基本情况。
下面是一个简单的倒计时示例,展示了递归:
void countdown(int n) {
if (n <= 0) { // 递归终止条件:当 n 到达 0 时停止
std::cout << "Done!" << std::endl;
return;
}
std::cout << n << std::endl;
countdown(n - 1); // 递归步骤:传入 n-1 再次调用
}调用 countdown(3) 时,它会打印 3,然后调用 countdown(2),打印 2,然后调用 countdown(1),依此类推,直到到达基准情况。每次函数调用都会等待下一次调用完成后再结束,从而形成一连串调用,最终逐步返回到最初的调用者。
亲手试试
这节课没有代码挑战。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: C++ 在线编译器