昆虫繁殖
时间限制: 1 Sec 内存限制: 128 MB[ 提交][ 状态][ 讨论版]
题目描述
科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫每过x个月产y对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过X个月产卵),问过Z个月以后,共有成虫多少对?x,y,z均为正整数
输入
输入只有一行为三个正整数:x y z 0=<X<=20,1<=Y<=20,X=<Z<=50
输出
输出只有一行,为z个月后成虫的对数(注意,表示要求第z个月结束后,即第z+1个月开始时的成虫个数)
样例输入
1 2 8
样例输出
37
# include<stdio.h> int main() { int x,y,n; scanf("%d%d%d",&x,&y,&n); long long a[n+10]; int i; memset(a,0,n+10); for(i=0;i<x+2;i++) a[i]=1; //昆虫的产期加上昆虫的成长期-1都是一个成虫 for(i;i<=n;i++) a[i]=a[i-x-2]*y+a[i-1]; //当前(i)的成虫数是上一年(i-1)的成虫个数 //与前(i-x-2)的成虫数的孩子(经过(i-x-2)天变成成虫)之和 printf("%lld\n",a[n]); return 0; }