【项目1-Fibnacci序列】
输出Fibnacci序列的第20个数。要求提交两个程序,fib(int n)的实现分别用迭代方法与递归方法实现。
提示:如实现困难,先从讲义看求阶乘的迭代方法与递归方法实现,深入体会后再进行设计。
参考解答:
//迭代法
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;
}
//递归法
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));
}