用非递归的函数调用形式求斐波那契数列的第n项
这几天学习了递归与非递归函数的调用,从这个数列开始练手
#include<iostream>
using namespace std;
/* 斐波那契数列的数学表达式是Fn=Fn-1+Fn+1,该数列长这模式:0 1 1 2 3 5 8.。。。。。。
get不到公认为这个公式迷人的点(==)!
非递归调用如下: */
long FB(int n)
{
int n1=1;
int n2=1;
int K=0;//数列的第n项
if (n<3&&n>0)
{
return 1;
}
else if(n==0)
{
return 0;
}
else
{
for(int i=3;i<=n;i++)//求第n项的值 ,为其前两项值之和
{
K=n1+n2;
n1=n2;//更新前两项的值
n2=K;
}
return K;
}
}
int main()
{
int n;
cin>>n;
cout<<FB(n)<<endl;
return 0;
}