【题目描述】
科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过x个月产y对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过X个月产卵),问过Z个月以后,共有成虫多少对?0≤X≤20,1≤Y≤20,X≤Z≤50。
【输入】
x,y,z的数值。
【输出】
过Z个月以后,共有成虫对数。
【输入样例】
1 2 8
【输出样例】
37
首先我们要明白这一过程:想要计算 第 i 月的成虫,是由前一个月(即 第 i-1 月)和 在这个月刚好变为的成虫
在 i-2月之前他们还是卵,再往前推x个月,是卵诞生的时候(在 i-2-x月 到 i 月之前,他们都没有作为成虫的一份子)
#if(1)
/*#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <cstring>
#include <stack>*/
#include <bits/stdc++.h>
#define A 1000+5
using namespace std;
const int maxn=100+5;
int cnt;
long long a[maxn];
int i,j;
int main()
{
int x,y,z;
cin>>x>>y>>z;
for(i=1;i<=x;i++)//产卵之前,都是一个
{
a[i]=1;
}
for(i;i<=z+1;i++)
{
a[i]=a[i-1]+a[i-x-2]*y; //前一月的成虫+刚刚变成的成虫
}
cout<<a[z+1];
return 0;
}
#endif