①递归式解法
int f(int x)
{
if(x==1||x==2)return 1;
else return f(x-1)+f(x-2);
}
②递推式解法
速度较快
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int f[50];
int f1=1,f2=1,f3,n;
cin>>n;//求f[n]
if(n==1||n==2)
{
cout<<1;
return 0;
}
for(int i=3;i<=n;i++)
{
f3=f1+f2;
f1=f2;
f2=f3;
}
cout<<f3;
}