蓝桥杯 微生物增殖 C语言

微生物增殖

假设有两种微生物 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分别会在0.5,1.5,2.5······时被吃,所以,把60分钟分成120份,则在除以2余数为1时,Y的数目减少X个

当X=10, Y=89,代码:

#include
int main()
{
	int x=10,y=89;
	for(int t=1;t<=120;t++)   //半分钟一个单位 60分钟为120个单位 
	{
		if(t%2==1)  
			y=y-x;  //因为X出生半分钟后就要吃Y,之后每1分钟要吃Y,所以永远都是奇数个半分钟的时候吃Y
			
		if(t%4==0)  //每两分钟翻倍 
			y=y*2;
			
		if(t%6==0)  //每三分钟翻倍
			x=x*2;
	} 
	printf("%d",y);
	return 0;
 } 

运行结果为负数,故y=0。

当X=10, Y=90,运行结果:

蓝桥杯 微生物增殖 C语言_第1张图片

 

 

你可能感兴趣的:(C语言,c语言,算法)