2012.B组.微生物增殖(简单模拟)

来源:互联网 发布:电商商品排序算法 编辑:程序博客网 时间:2024/05/29 06:56
微生物增殖
假设有两种微生物 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 种群灭绝的最后一根稻草!


题解:

分别算出这两种情况的Y值即可。

x吃掉y的时间为:0.5,1.5,2.5......55.5,相当于从1到60.每过一分钟先减去x即可;再判断是否需要增殖x,y.

答案:

-979369984
94371840

代码:

#include<stdio.h>void wei(int x,int y,int t){    for(int i=1;i<=t;i++)    {        y-=x;        if(i%2==0)y*=2;        if(i%3==0)x*=2;       // printf("%d:x==%d  y==%d\n",i,x,y);    }    printf("%d\n",y);}int main(){    wei(10,89,60);    wei(10,90,60);}