DFS
来看一道有意思的题目
#include <iostream>
using namespace std;
int cc(int i){
for(;i < 4;i++){
cout<<cc(i + 1);
}
return i;
}
int main(){
cc(1);
}
输出结果是7个4。
题目可以这样来看
int cc(int i){
for(;i < 4;i++){
cout<<cc(i + 1);
}
return i;
}
对于这个for循环,可以看成先进行了for循环,那么就是
对于cc(1)的for循环
i = 1 cout<<cc(2); 输出4个4
i = 2 cout<<cc(3);
i = 3 cout<<cc(4);
此时for循环结束,返回4,那么cc(1)就是4
对于cout<<cc(2);
此时进入cc(2)的for循环
i = 2 cout<<cc(3); 输出两个4
i = 3 cout<<cc(4);
for循环(i == 4)结束,输出cc(2)为4;
对于cout<<cc(3)
i = 3 cout<<cc(4) 输出4;
对于cout<<cc(4) 输出4;