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;

results matching ""

    No results matching ""