【项目1-Fibnacci序列】

输出Fibnacci序列的第20个数。要求提交两个程序,fib(int n)的实现分别用迭代方法与递归方法实现。

提示:如实现困难,先从讲义看求阶乘的迭代方法与递归方法实现,深入体会后再进行设计。

参考解答:

//迭代法
#include <iostream>
using namespace std;
int fib(int n);
int main()
{
cout<<fib(20)<<endl;
return 0;
}
//返回Fibnacci序列中的第n个数
int fib(int n)
{
int f,f1,f2,i;
if(n==1)
return 0;
else if(n==2)
return 1;
else
{
f1=0;
f2=1;
for(i=3;i<=n;++i)
{
f=f1+f2;
f1=f2;
f2=f;
}
}
return f2;
}


//递归法
#include <iostream>
using namespace std;
int fib(int n);
int main()
{
cout<<fib(20)<<endl;
return 0;
}
//返回Fibnacci序列中的第n个数
int fib(int n)
{
if(n==1)
return 0;
else if(n==2)
return 1;
else
return(fib(n-1)+fib(n-2));
}