【例3.4】昆虫繁殖
题目描述
科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过x个月产y对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过X个月产卵),问过Z个月以后,共有成虫多少对?0≤X≤20,1≤Y≤20,X≤Z≤50。
输入
x,y,z的数值。
输出
过Z个月以后,共有成虫对数。
样例输入 Copy
1 2 8
样例输出 Copy
37
#include<iostream>
#include<cstdio>
using namespace std;
const long MAXN = 50 + 1;
long x, y, z;
long f[MAXN], e[MAXN];
int main() {
cin>>x>>y>>z;
for(int i = 1; i <= x; i++) f[i] = 1;
for(int i = x+1; i <= z+1; i++) {
e[i] = f[i - x] * y;
f[i] = f[i - 1] + e[i - 2];
}
printf("%ld\n", f[z+1]);
}
go

浙公网安备 33010602011771号