动态规划方法

#include <bits/stdc++.h>
using namespace std;

int fb(int n);
int main (){
    int n;
    cin >> n;
    cout << fb(n);
}
int fb(int n){
    if(n == 0){
        return 0;
    }
    if(n == 1){
        return 1;
    }
    vector<int> dp(n+1 , 0);
    for(int i = 2; i < n+1; i++){
        dp[0] = 0;
        dp[1] = 1;
        dp[i] = dp[i - 1] + dp[i - 2];
    }
    return dp[n];
}

使用一个动态数组来存储值,利用历史记录,来避免我们的重复计算