xy2022

导航

 

1312:【例3.4】昆虫繁殖


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 26115     通过数: 12947 

【题目描述】

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

【输入】

x,y,z的数值。

【输出】

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

【输入样例】

1 2 8

【输出样例】

37

#include<iostream>
using namespace std;
long long a[100];//定义全局变量,默认初始值为0;
int main(){
	long long x,y,z;
	cin>>x>>y>>z;
	for(int i=0;i<2+x;++i){//赋边界值;
		a[i]=1;
	}
	for(int i=2+x;i<=z;++i){//递推循环;
		a[i]=a[i-1]+a[i-2-x]*y;
	}
	cout<<a[z];
	return 0;
}
解题思路:
假设x=1,y=2,z=8
(1)第0月有1对成虫;第1个月有1对成虫,产2对卵;第2个月有1对成虫,产2对卵;第三个月有3对成虫,产2对卵......
(2)第z个月的成虫数有两个来源:第一个来源是上个月的成虫数量a[z-1],第二个来源是卵新长成的成虫a[z-2-x]*y,所以,a[z]=a[z-1]+a[z-2-x]*y;
(3)建立数学模型以后,编写程序。设置边界值,进行递推循环。
posted on 2022-05-14 23:05  XY2022  阅读(338)  评论(0)    收藏  举报