代码是这样的:
void count(int n){
int i=0;
for(; i<n; i++){
fork();
putchar('*');
fflush(stdout);
}
}求参数为N时输出的‘*’的个数。
我知道这个肯定是有规律可循的,展开了算很复杂,初步感觉是2^N。
N==1时候,有2个
N==2时候,有6个,不是2^N
N==3时候,有 算不出来。。。
回头程序跑了一下,发现是2^(N+1)-2。
递归进程与星号输出规律
探讨了一个特定的递归进程代码,在不同参数设置下输出星号数量的规律,并给出了参数N时输出星号数量的具体数学表达式。
代码是这样的:
void count(int n){
int i=0;
for(; i<n; i++){
fork();
putchar('*');
fflush(stdout);
}
}我知道这个肯定是有规律可循的,展开了算很复杂,初步感觉是2^N。
N==1时候,有2个
N==2时候,有6个,不是2^N
N==3时候,有 算不出来。。。
回头程序跑了一下,发现是2^(N+1)-2。
980
563

被折叠的 条评论
为什么被折叠?