俄罗斯套娃

5 分钟

递归就是函数自己调用自己,像一套俄罗斯套娃:打开一个,里面还有个小一号的,再打开还有……解决"大问题里藏着一个小一号的同样问题"时特别顺手。但套娃不能无限套,总得有最小的那个打不开了——这叫"终止条件"。

#include <iostream>
using namespace std;
void open(int n){
    if(n == 0) return;      // 最小的娃,停下
    cout << "打开第 " << n << " 层" << endl;
    open(n - 1);            // 打开小一号的
}
int main(){
    open(3);
    return 0;
}

注意:递归必须有终止条件,否则会一直套下去停不下来,程序最终崩溃(栈溢出)。每次自己调自己,问题都要变得更小一点、朝着终止条件靠近。

小纸条

套娃能一直套下去不停吗?为什么?

登录 后可看答案

俄罗斯套娃 · C++ 入门 · op599 课程