第n个月的兔子可以分成4类,一类是成熟的兔子f(n-3),第二类是刚出生的兔子f(n-3),第三类是出生了一个月的兔子f(n-4),第四类是出生了两个月的兔子f(n-5)
#include<iostream> using namespace std; const int MAXN = 1e6+10; long long mod = 1e9+7; long long dp[MAXN]={0,1,1,1,2}; int main() { int n; cin >> n; int t = 0; long long sum = 0; for(int i = 5 ; i <= n ; i++) { dp[i]+=dp[i-3]; dp[i]%=mod; for(int j = i-3 ; j >= i-5 &&j>0 ; j--) { dp[i]+=dp[j]; dp[i]%=mod; } } cout<<dp[n]; return 0; }