把计算过的保存起来,减少重复计算
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
int arr[1024];
int f(int n)
{
if(n<=2)
{
return 1;
}
if(arr[n]!=0)
{
return arr[n];
}
else
{
arr[n]=f(n-1)+f(n-2);
return arr[n];
}
}
int fb(int n)
{
if(n<=2)
{
return 1;
}
return fb(n-1)+fb(n-2);
}
int main()
{
int n;
while(cin>>n)
{
memset(arr,0,sizeof(arr));
arr[1]=1;
arr[2]=1;
cout<<f(n)<<endl;
}
}