兔子问题衍生
兔子问题:假设第一个月有一对兔子,第三个月后开始每个月生产一对兔子,小兔子从出生第三个月后每个月生产一对兔子,每生完m对兔子,这对兔子立马死亡。第几个月能有N对兔子?
原 数 列: 1 1 2 3 5 8 13…
设m=2,
数列变化:0 0 0 -1 -1 -2 -3 -5
每对兔子自出生第一月开始在第m+2月死亡,数列错开相减。
表达式:dp[i]=dp[i-1]+dp[i-2]-dp[i-m-1]
在前一练习题基础上改,时间复杂度O(n)
#include <iostream>
using namespace std;
int main() {
int N,i=2;
int M;
int res=1,pre=1,res1