1. /*
  2. 题目描述
  3. 科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过x个月产y对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过X个月产卵),问过Z个月以后,共有成虫多少对?0≤X≤20,1≤Y≤20,X≤Z≤50。
  4. 输入格式
  5. x,y,z的数值。
  6. 输出格式
  7. 过Z个月以后,共有成虫对数。
  8. 样例输入
  9. 1 2 8
  10. 样例输出
  11. 37
  12. */
  13. #include <iostream>
  14. using namespace std;
  15. int main(){
  16. ios::sync_with_stdio(0);
  17. cin.tie(0);
  18. int x,y,z;
  19. cin>>x>>y>>z; //成虫过x月繁殖,一对成虫一次生多少对,实验到z月停止
  20. long long a[100]={0}; //存储每个月的成虫数量
  21. int v=1-(x+2); //因为繁殖出的卵需要2个月加x月后才能繁殖
  22. a[0]=1; //第一个月只有一对成虫
  23. for(int i=1;i<=z;i++){
  24. if(v<0){ //卵和暂时不能繁殖的成虫
  25. a[i]+=a[0];
  26. v++;
  27. //cout<<i<<"月:"<<a[i]<<endl;
  28. continue;
  29. }
  30. a[i]=a[i-1]+a[i-(x+2)]*y; //这是个递推公式:当第二对成虫开始繁殖后数量就是前一次的成虫加上卵孵化长大后(可繁殖)的数量*y;
  31. v++;
  32. //cout<<i<<"月:"<<a[i]<<endl;
  33. }
  34. cout<<a[v+x+1]<<endl; //Z个月后要加上刚刚长大的成虫
  35. return 0;
  36. }
点赞(0)
 

0 分

0 人评分

 

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论