法一:递归
#include<iostream>
#include<stdio.h>
using namespace std;
//递归解法 C++ 实现
int Fib(int n)
{
if(n==0)
return 0;
else if(n==1)
return 1;
else
return Fib(n-1)+Fib(n-2);
}
int main()
{
int n;
cout<<"请输入一个数:";
cout<<endl;
cin>>n;
cout<<Fib(n)<<endl;
return 0;
}
法二:非递归
#include<stdio.h>
#include<iostream>
//非递归 C++ 实现
using namespace std;
int fib(int n)
{
if(n==0)
return 0;
if(n==1)
return 1;
int f1=1;
int f2=0;
int fn=0;
for(int i=2;i<=n;i++)
{
fn=f2+f1;
f2=f1;
f1=fn;
}
return fn;
}
int main()
{
int n;
cout<<"请输入一个整数:"; //表示要求的是数列中的第几个数。
cout<<endl;
cin>>n;
cout<<fib(n)<<endl;
return 0;
}