码迷,mamicode.com
首页 > 其他好文 > 详细

蓝桥杯 -- 微生物繁殖

时间:2017-04-02 11:45:12      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:数字游戏   family   动态更新   mil   更新   理解   答案   ==   简单   

题目描述:

假设有两种微生物 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 }

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

蓝桥杯 -- 微生物繁殖

标签:数字游戏   family   动态更新   mil   更新   理解   答案   ==   简单   

原文地址:http://www.cnblogs.com/yoke/p/6658569.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!