C语言题,有关函数递归调用
fun(intn,int*s){intf1,f2;if(n==1||n==2)*s=1;else{fun(n-1'&f2);fun(n-2,&f2);*s=f1+f2;}...
fun(int n,int *s)
{ int f1,f2;
if(n==1||n==2)*s=1;
else
{fun(n-1'&f2);
fun(n-2,&f2);
*s=f1+f2;
}
}
main()
{int x;
fun(6,&x);
printf("%d\n",x);
}
它的调用步骤是怎样的?*s=f1+f2最后是几加几?
fun(int n,int *s)
{ int f1,f2;
if(n==1||n==2)*s=1;
else
{fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}
}
main()
{int x;
fun(6,&x);
printf("%d\n",x);
}
它的调用步骤是怎样的?*s=f1+f2最后是几加几? 展开
{ int f1,f2;
if(n==1||n==2)*s=1;
else
{fun(n-1'&f2);
fun(n-2,&f2);
*s=f1+f2;
}
}
main()
{int x;
fun(6,&x);
printf("%d\n",x);
}
它的调用步骤是怎样的?*s=f1+f2最后是几加几?
fun(int n,int *s)
{ int f1,f2;
if(n==1||n==2)*s=1;
else
{fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}
}
main()
{int x;
fun(6,&x);
printf("%d\n",x);
}
它的调用步骤是怎样的?*s=f1+f2最后是几加几? 展开
2个回答
展开全部
fun(6,&x)->if假->fun(5,&f1),fun(4,&f2) //5,3 8
fun(5,&x')->if假->fun(4,&f1),fun(3,&f2) //3,2 5
fun(4,&x'')->if假->fun(3,&f1),fun(2,&f2) //2,1 3
fun(3,&x''')->if假->fun(2,&f1),fun(1,&f2)//1,1 2
fun(3,&x'')->if假->fun(2,&f1),fun(1,&f2) //1,1 2
fun(4,&x')->if假->fun(3,&f1),fun(2,&f2) //2,1 3
fun(3,&x'')->if假->fun(2,&f1),fun(1,&f2) //1,1 2
5+3
fun(5,&x')->if假->fun(4,&f1),fun(3,&f2) //3,2 5
fun(4,&x'')->if假->fun(3,&f1),fun(2,&f2) //2,1 3
fun(3,&x''')->if假->fun(2,&f1),fun(1,&f2)//1,1 2
fun(3,&x'')->if假->fun(2,&f1),fun(1,&f2) //1,1 2
fun(4,&x')->if假->fun(3,&f1),fun(2,&f2) //2,1 3
fun(3,&x'')->if假->fun(2,&f1),fun(1,&f2) //1,1 2
5+3
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询