请编写一个函数long Fibo(int n), 该函数返回n的Fibonacci数。规则如下:n等于1或者2时,Fibonacci数为1,之后每个Fibonacci数均为止前两个数之和, 即:F(n)=F(n-1)+F(n-2) 注意:清使用递归

admin2010-02-08  39

问题 请编写一个函数long Fibo(int n), 该函数返回n的Fibonacci数。规则如下:n等于1或者2时,Fibonacci数为1,之后每个Fibonacci数均为止前两个数之和,  即:F(n)=F(n-1)+F(n-2)
   注意:清使用递归算法实现该函数。
   部分源程序已存在文件test1_2.cpp中。
   请勿修改主函数main和其他函数中的任何内容,仅在函数Fibo的花括号中填写若干语句。如n=8时,结果是21。
   文件test1_2.cpp清单如下:
       #include<iostream.h>
       corlsh  int  N=8;
       long Fibo(int n);
       void main()
       {
         long f=Fibo(N);
         couk<<f<<endl;
       }
       long Fibo(int n)
       {
       }

选项

答案long Fibo(int n) { if(n==1)return 1L; else if(n==2) return 1L; else return Fibo(n-1)+Fibo(n-2); }

解析 本题考查的是考生对于递归函数的熟练掌握。递归是指在调用函数的过程中出现调用该函数自身,这里递归的结束条件是n等于1或2,即已知数列前两项为1。其调用过程如下:如果函数的参数为l或者2就把返回值1返回调用函数;否则,就使用递推公式Fibo(n)=Fibo(n-1)+Fibo(n-2),把n-1和n-2作为参数调用原函数,即这是一个递归求值的过程(递推的过程)。
转载请注明原文地址:https://kaotiyun.com/show/97ID777K
0

最新回复(0)