本文主要是介绍2012年蓝桥杯初赛题1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第一题:微生物增殖
假设有两种微生物 X 和 Y
X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。
一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。
现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。
如果X=10,Y=90 呢?
本题的要求就是写出这两种初始条件下,60分钟后Y的数目。
分析:
本题其实就是一道模拟题,这里会有理解上的问题,到底是先吃还是先分裂呢?其实仔细分析后,就发现吃和分裂不会发生在同一时刻,所以就不用纠结这个问题了,该分裂就分裂,该吃就吃,,他们之间没有直接的关系。下面是代码:
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int x,y;
void Cal(int x,int y){y-=x;for(int i=2;i<=120;i++){if(i%2) y-=x;if(i%6==0) x=2*x;if(i%4==0) y=2*y;}if(y<0) y=0;printf("%d %d\n",x,y);
}
int main(){while(scanf("%d%d",&x,&y)!=EOF)Cal(x,y);return 0;
}
这篇关于2012年蓝桥杯初赛题1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!