一道C语言题,# include int fun (int n,int *s){int f1,f2;if (n==1||n==2) *s=1;else {fun(n-1,&f1); /* fun(5,&f1) fun(4,&f1) fun(3,&f1) fun(2,&f1) */fun(n-2,&f2); /* fun(4,&f2) fun(2,&f2) */*s=f1+f2;}}main(){int x;fun(6,&x);printf ("\n%d\n",x);}输
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 06:22:16
![一道C语言题,# include int fun (int n,int *s){int f1,f2;if (n==1||n==2) *s=1;else {fun(n-1,&f1); /* fun(5,&f1) fun(4,&f1) fun(3,&f1) fun(2,&f1) */fun(n-2,&f2); /* fun(4,&f2) fun(2,&f2) */*s=f1+f2;}}main(){int x;fun(6,&x);printf (](/uploads/image/z/3691247-23-7.jpg?t=%E4%B8%80%E9%81%93C%E8%AF%AD%E8%A8%80%E9%A2%98%2C%23+include+int+fun+%28int+n%2Cint+%2As%29%7Bint+f1%2Cf2%3Bif+%28n%3D%3D1%7C%7Cn%3D%3D2%29+%2As%3D1%3Belse+%7Bfun%28n-1%2C%26f1%29%3B+%2F%2A+fun%285%2C%26f1%29+fun%284%2C%26f1%29+fun%283%2C%26f1%29+fun%282%2C%26f1%29+%2A%2Ffun%28n-2%2C%26f2%29%3B+%2F%2A+fun%284%2C%26f2%29+fun%282%2C%26f2%29+%2A%2F%2As%3Df1%2Bf2%3B%7D%7Dmain%28%29%7Bint+x%3Bfun%286%2C%26x%29%3Bprintf+%28%22%5Cn%25d%5Cn%22%2Cx%29%3B%7D%E8%BE%93)
一道C语言题,# include int fun (int n,int *s){int f1,f2;if (n==1||n==2) *s=1;else {fun(n-1,&f1); /* fun(5,&f1) fun(4,&f1) fun(3,&f1) fun(2,&f1) */fun(n-2,&f2); /* fun(4,&f2) fun(2,&f2) */*s=f1+f2;}}main(){int x;fun(6,&x);printf ("\n%d\n",x);}输
一道C语言题,
# include
int fun (int n,int *s)
{
int f1,f2;
if (n==1||n==2) *s=1;
else
{
fun(n-1,&f1); /* fun(5,&f1) fun(4,&f1) fun(3,&f1) fun(2,&f1) */
fun(n-2,&f2); /* fun(4,&f2) fun(2,&f2) */
*s=f1+f2;
}
}
main()
{
int x;
fun(6,&x);
printf ("\n%d\n",x);
}
输出结果为什么是8?
一道C语言题,# include int fun (int n,int *s){int f1,f2;if (n==1||n==2) *s=1;else {fun(n-1,&f1); /* fun(5,&f1) fun(4,&f1) fun(3,&f1) fun(2,&f1) */fun(n-2,&f2); /* fun(4,&f2) fun(2,&f2) */*s=f1+f2;}}main(){int x;fun(6,&x);printf ("\n%d\n",x);}输
结果不应该是8吗?
x = fun(6) = fun(5) + fun(4) = (fun(4) + fun(3) )+( fun(3) + fun(2)) = ((fun(3) + fun(2)) +( fun(2) + fun(1))
+ (fun(2) + fun(1)) + 1 = fun(2) + fun(1) + 6 = 8