c++编写用递归方法计算

c++编写用递归方法计算Fibonacci序列的 前20项函数,并编写主函数调用该函数
Fibonacci序列函数的定义如下所示:
fib(n)=1{当n=1或者n=2}
fib(n)=fib(n-1)+fib(n-2){当n>2}
要求返回前20项的全部
一次性返回

伙计,你的题目都是错的
Fibonacci数列中,fib(n) = 1 (n==0 || n==1)
不是1,2
fib(n) = fib(n-1) + fib(n-2) (n>=2)
记住哦!
我给你把程序补全吧:
#include <iostream>
using std::cout;
using std::endl;

int main()
{
int Fibonacci(int);
for (int i = 0; i != 20; ++i) { //用++i而不要用i++
cout << Fibonacci(i) << '\t';
}
cout << endl;
return 0;
}

long Fibonacci (int n)
{
if (n == 0 || n == 1)
return 1;
return Fibonacci(n-1) + Fibonacci(n-2);
}
上面的注释中i++的效率低,如果不需要返回当前的i值的话,最好用++i
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-26
#include <iostream.h>
long fibo(int n)
{
if (n==1||n==2)
return 1;
return fibo(n-1)+fibo(n-2);
}

void main()
{
int i;
for (i=1;i<=20;i++)
cout<<fibo(i)<<endl;
}
第2个回答  2009-04-26
int fib(int n)
{
if(n<=2)
return 1;
else
return fib(n-1)+fib(n-2);
}

调过过程的主程序,您可以自己动手写。
相似回答