河南成教 / 河南理工大学
5[应用题]
斐波那契(Fibonacci)数列的定义为:它的第一项和第二项均为1,以后各项为前两项之和。若斐波那契数列中第n项用Fib(n)表示,则计算公式为:
试根据下面程序填写出计算Fib(n)的递归算法和非递归算法。
递归算法如下:
int Fib(int n)
{if (n==1||n==2) 1; /*终止递归条件*/
return Fib(n-1) Fib(n-2));}
非递归算法如下:
int Fib1(int n)
{ a,b,c;/*c代表当前项,a和b分别代表当前项前面的第二项和第一项*/
a=b= ;
(n==1||n==2) return 1;
else
for(int i=3;i<=n;i )
{c= ; /*求出当前项*/
a= ; /*把前面第一项赋给前面第二项*/
b= ; /*把当前项赋给前面第一项*/
}
return c; /*返回所求的第n项*/
}
5[应用题]
斐波那契(Fibonacci)数列的定义为:它的第一项和第二项均为1,以后各项为前两项之和。若斐波那契数列中第n项用Fib(n)表示,则计算公式为:
试根据下面程序填写出计算Fib(n)的递归算法和非递归算法。
递归算法如下:
int Fib(int n)
{if (n==1||n==2) 1; /*终止递归条件*/
return Fib(n-1) Fib(n-2));}
非递归算法如下:
int Fib1(int n)
{ a,b,c;/*c代表当前项,a和b分别代表当前项前面的第二项和第一项*/
a=b= ;
(n==1||n==2) return 1;
else
for(int i=3;i<=n;i )
{c= ; /*求出当前项*/
a= ; /*把前面第一项赋给前面第二项*/
b= ; /*把当前项赋给前面第一项*/
}
return c; /*返回所求的第n项*/
}
参考答案:
佳题速递: