下列代码的输出为______________
#include<stdio.h>
int fun(int n)
{ int k;
if(n==0||n==1) //函数递归结束的条件
return 3;
else
k=n-fun(n-2);
return k;
}
int main()
{
printf("%d\n",fun(7));
return 0;
}
第一次递归 fun(7)
n=7,
k=7-fun(5),
return k;
第二次递归 fun(5)
n=5,
k=5-fun(3),
return k;
第三次递归 fun(3)
n=3
k=3-fun(1)
return k;
第四次递归 fun(1)
return 3.
此时递归结束,开始返回数值。
第四次递归返回数值:3
第三次递归返回数值:0
第二次递归返回数值:5
第一次递归返回数值:2
此时返回主函数,输出第一次递归返回的值,程序结束。
所以答案为 2