蓝桥杯 -- 微生物繁殖

Posted 风中的簌雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥杯 -- 微生物繁殖相关的知识,希望对你有一定的参考价值。

题目描述:

假设有两种微生物 X 和 Y

X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。

一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。

现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。

如果X=10,Y=90  呢?

本题的要求就是写出这两种初始条件下,60分钟后Y的数目。

题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈有着同样脆弱的性质!也许因为你消灭的那只 Y 就是最终导致 Y 种群灭绝的最后一根稻草!

 

请忍住悲伤,把答案写在“解答.txt”中,不要写在这里!

两个整数,每个1行。

参考答案:

0

94371840

 

题意剖析:

1、刚开始时,X和Y都是新生的。

2、对于X微生物的“饭量”(一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。)

   我们可以理解为:一个X每分钟吃掉一个Y(一个新出生的X,它在0.5分钟的时候吃了一个Y,

   在第1.5分钟吃一个,2.5分钟又吃了一个,也就是说,三分钟内,X吃了3个Y)

3、X的数量和Y的数量都要动态更新,(X一分钟吃一个Y,X 3分钟增殖一次,Y两分钟增值一次)

4、到最后Y的值可能为负数(Y被吃完了)

 1 #include <stdio.h>
 2 
 3 int main ()
 4 {
 5     long long x = 10, y = 90; // X = 10 
 6     for (int i = 1; i <= 60; i ++)
 7     {
 8         y -= x;          // X每分钟吃一个Y 
 9         if (i%3==0)      // X每三分钟分裂一次 
10             x += x;
11         if (i%2==0)      // Y没两分钟分裂一次 
12             y += y;
13         if (y < 0)       // Y可能会被吃完 
14         {
15             y = 0; break;
16         }
17     }
18     printf("%lld\n",y);
19     return 0;
20 }

欢迎评论!也可以私我。。。

以上是关于蓝桥杯 -- 微生物繁殖的主要内容,如果未能解决你的问题,请参考以下文章

科技素养题少儿编程 蓝桥杯青少组科技素养题及详细解析第1套

小学生蓝桥杯Python闯关 | 病毒复制

蓝桥杯——根据手册写底层

蓝桥杯java历年真题及答案整理(共100道题目及答案)

蓝桥杯 蓝肽子序列 python(2020动态规划)

第十四届蓝桥杯大赛——真题训练第11天