题目链接
点击打开链接
#include<cstdio>
using namespace std;
/*方法一*/
//int fib(int n){//入门递归,时间复杂度O(2^n)
// if(a<=2) return 1;
// else return fib(n-1)+fib(n-2);
//}
/*方法二*/
//#define MAXN 1000000
//#include<cstring>
//int F[MAXN];
//int fib(int n){//递归法改进,记忆化搜索
// if (n==1) return F[1]=1;
// if (n==2) return F[2]=1;
// if(F[n]>=0) return F[n];
// else return F[n]=fib(n-1)+fib(n-2);
//}
/*方法三*/
//int fib(int n){//迭代法,时间复杂度为O(n)
// int i;
// int a=0,b=1,c;
// if(n<=1){
// return n;
// }
// else{
// for(i=2;i<=n;i++){
// c=a+b;
// a=b;
// b=c;
// }
// }
// return c;
//}
int main(){
memset(F,-1,sizeof(F));//记忆化搜索时使用
int n;
scanf("%d",&n);
int res=fib(n);
printf("%d",res);
return 0;
}