我很难理解程序多次调用递归的代码部分。
输出为1233333
。如果我将递归行更改为 fun (++count;
)。输出是123
,我理解其中的逻辑,但是当你开始多次调用递归时,我就迷失了。
#include <stdio.h>
int fun(int count) {
printf("%d\n", count);
if(count < 3) {
fun(fun(fun(++count)));
}
return count;
}
int main()
{
fun(1);
return 0;
}
最佳答案
第一个函数调用 1 作为参数并打印 1
然后进入if语句
计数增加
fun(fun(fun(2)))
2 打印 and 并输入 if and
计数增加到 3
fun(fun(fun(3))))
打印了3,但是这次不输入if而是返回3
return(3)
并且 3 返回到之前的嵌套调用
fun(fun(3))
这种情况发生了 4 次 因此输出
1233333
关于c - C 中递归的递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33685651/