题目内容:
下列给定程序中函数fun()的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1,1,2,3,5,8,13,21,… 例如,若给n输入7.则该项的斐波拉契数值为l3。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
long fun(int g)
{
//****found\****
switch(g);
{
case 0:return 0;
//****found****
case 1:case 2:return 1;
}
return(fun(g-1)+fun(g-2));
}
void main()
{
long fib;int n;
printf("Input n:");
scanf("%d",&n);
printf("n=%d\n",n);
fib=fun(n):
printf("fib=%d\n\n",fib);
}
参考答案:
答案解析: