2012年蓝桥杯预选赛-微生物增殖(我有疑问)

    假设有两种微生物 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”中,不要写在这里!

==================================================================

如果按照网上流传的答案,代码应该是这样写的。


//微生物增殖问题
#include <stdio.h>
#define TIME 120

unsigned int proliferate(unsigned int x , unsigned int y );

int main(int argc, char const *argv[])
{
	unsigned int X1 = 10, Y1 = 89;
	unsigned int X2 = 10, Y2 = 90;
	proliferate(X2 , Y2 );
	proliferate(X1 , Y1	);

	return 0;
}

unsigned int proliferate(unsigned int x , unsigned int y ){
	unsigned int newX = 0;
	int i;
	for(i = 1; i <= TIME; i ++ ){
		
		if( i % 2 == 0){
			y = y - x;
		}
		if( i % 4 == 0){
			y = y * 2;
		}
		if( i % 6 == 0 ){
			newX = x;			
			x = x * 2;
		
		}
	}
	printf("%d\n",y );
}

答案是:  94371840 

0

但是我觉得他们都忽略了一个条件:一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。

还是有一个问题,在分钟数为2的倍数的时候,是X先吃掉Y呢,还是Y繁殖后再被X吃呢? 不同的优先级有不同的结果。

在这里我觉得还是不满足题目给的“一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。”这个条件。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值