一道C语言题,# include int fun (int n,int *s){int f1,f2;if (n==1||
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/05/18 15:16:29
一道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?
# 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?
结果不应该是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
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
一道C语言题,# include int fun (int n,int *s){int f1,f2;if (n==1||
#include int fun(int n,int *s){int f1,f2;if(n==1IIn==2)*s=1;
以下程序的输出结果是#includeint fun(int n,int *s){ int f1,f2;if(n==0||
#include int fun(int*x,int n) { if (n==0) return x[0]; else
#include int fun(int b[].int n) { int i.r=1:for(i=0:i
#include long fun(int n) {long s; if(n
flag是什么作用?#include int fun(char *s){int n=0, flag=0; while(*
# include # include int mian () { int m,n,i,s=0; int a[10000
#include #include #include int fun(float x[],int n) /f
C语言程序,帮我看看#include int fun(int x){\x09int a;\x09float s=1;\x
#include sub(int *a,int n,int k) { if(k
#include #include fun(int n) { int k,r; for(k=2;k