#include<iostream>
using namespace std;
#include<vector>
class Solution {
public:
/*************暴力递归法**************************/
int fibfoc(int n) {
if(n==0) return 0;
if(n==1) return 1;
return fibfoc(n-1)+fibfoc(n-2);
}
/*************暴力递归法**************************/
/*************记忆化搜索**************************/
int fibme(int n) {
vector<int>dp(n+1,-1);
if(dp[n]!=-1) return dp[n];
if(n==0) {
dp[n]=0;
return dp[n];
}
if(n==1) {
dp[n] = 1;
return dp[n];
}
dp[n]=fibme(n-1)+fibme(n-2);
return dp[n];
}
/*************记忆化搜索**************************/
/*************动态规划**************************/
int fibdp(int n) {
if (n == 0) return 0;
if (n == 1) return 1;
vector<int>dp(n + 1, -1);
dp[0] = 0;
dp[1] = 1;
for (int i = 2; i <= n; i++) {
dp[i] = dp[i - 1] + dp[i - 2];
dp[i] %= 1000000007;
}
return dp[n];
}
};
int main()
{
Solution slt;
//cout<<slt.fibfoc(10)<<endl;
cout << slt.fibme(100) << endl;
//cout << slt.fibdp(10) << endl;
system("pause");
return 0;
}
01-21
8972
11-03