俄罗斯套娃
约 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;
}
注意:递归必须有终止条件,否则会一直套下去停不下来,程序最终崩溃(栈溢出)。每次自己调自己,问题都要变得更小一点、朝着终止条件靠近。
小纸条
套娃能一直套下去不停吗?为什么?
登录 后可看答案