#include<iostream>
using namespace std;
//递归方法
int Fbnq(int val)
{
if(val <1)
{
exit(-1);
}
if(val==2 || val ==1)
{
return 1;
}
else
{
return Fbnq(val-1)+Fbnq(val-2);
}
}
//非递归更快
int _Fbnq(int val)
{
int nu1 =1;
int nu2 =1;
int sum =0;
if(val <1)
{
exit(-1);
}
if(val ==1 || val ==2)
{
return 1;
}
else
{
for(int i=2;i<val; ++i)
{
sum = nu1+nu2;
nu1 = nu2;
nu2 = sum;
}
}
return sum;
}
int main()
{
//cout<<Fbnq(0)<<endl;
cout<<Fbnq(1)<<endl;
cout<<Fbnq(2)<<endl;
cout<<Fbnq(3)<<endl;
cout<<Fbnq(4)<<endl;
cout<<Fbnq(38)<<endl<<endl;
cout<<_Fbnq(1)<<endl;
cout<<_Fbnq(2)<<endl;
cout<<_Fbnq(3)<<endl;
cout<<_Fbnq(4)<<endl;
cout<<_Fbnq(40)<<endl;
return 0;
}
斐波那契数列
最新推荐文章于 2022-08-19 00:00:04 发布