题意:
        有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,
        假如兔子都不死,问第n个月的兔子总数为多少

方法一:
动态规划

思路:
        该问题是斐波那契数列求解问题。
        公式:当前项等于前两项之和。
        直接循环计算。

    


#include <bits/stdc++.h>

using namespace std;
int dp[1000005];

int main(){

    dp[1]=1;//初始化
    dp[2]=1;
    for(int i=3;i<=1000000;i++)//动态规划打表
        dp[i]=dp[i-1]+dp[i-2];
    int x;
    while(cin >> x){//输入
        cout << dp[x] << endl;
    }
    return 0;
}
	


时间复杂度:
空间复杂度:


方法二:
记忆化递归

思路:
        
        递归并记忆化存储,优化了时间复杂度。

#include <bits/stdc++.h>

using namespace std;
int dp[1000005];

int f(int x){//递归
    if(x<=2)
        return 1;
    if(dp[x])
        return dp[x];
    return dp[x]=f(x-1)+f(x-2);//记忆化存储
}
int main(){

    int x;
    while(cin >> x){//输入
        cout << f(x) << endl;
    }
    return 0;
}



时间复杂度:
空间复杂度: