第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;
}
京公网安备 11010502036488号