2918: 【例67.2】 昆虫繁殖

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过$x$个月产$y$对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过$x$个月产卵),问过$z$个月以后共有成虫多少对?
$1≤x≤20,1≤y≤20,x< z≤50$。

输入

$x$,$y$,$z$的数值。

输出

过$z$个月以后,共有成虫对数。

样例输入 复制

1 2 8

样例输出 复制

37

提示

#include<bits/stdc++.h>

using namespace std;
int x, y, n;
long long bug[105], egg[105];
long long deal(int x) {
    long long sum = 0;
    for (int i = x; i >= 1; i--) {
        sum += bug[i];
    }
    return sum;
}
int main() {
    cin >> x >> y >> n;
    bug[1] = 1;
    for (int i = 2; i <= n + 1; i++) {
        egg[i] = deal(i - x) * y;
        bug[i] = egg[i - 2];
    }
    cout << deal(n + 1);
    return 0;
}