p.s.个人收录用
题目描述
科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过x个月产y对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过X个月产卵),问过Z个月以后,共有成虫多少对?0=<X<=20,1<=Y<=20,X=<Z<=50
输入
x,y,z的数值
输出
过Z个月以后,共有成虫对数
样例输入 Copy
1 2 8
样例输出 Copy
37
代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <string.h>
//昆虫繁殖
int x, y, z;
long long int a[100] = { 0 };
long long int re(int n)
{
if (a[n])
return a[n];
a[n] = re(n - 1) + a[n - 2 - x] * y;
return a[n];
}
int main()
{
scanf("%d%d%d", &x, &y, &z);
for (int i = 0; i < x + 2; i++)
a[i] = 1;
printf("%lld\n", re(z));
}