2012年第三届蓝桥杯C/C++程序设计本科B组省赛:
微生物增殖
假设有两种微生物 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<iostream>
using namespace std;
int main(){
double x,y;
cin>>x>>y;
for(int i=1;i<=60;i++){ //从第一秒开始到60秒结束
y-=x;//每次增加1分钟之前即1.5 2.5 3.5……都要有x吞噬y
if(y<0){
cout<<0;
return 0;
}
if(i%2==0&&i!=0)y=2*y;
if(i%3==0&&i!=0)x=2*x;
cout<<x<<" "<<y<<endl;
}
printf("%lf",y);//注意这里用printf()语句用浮点型数据输出y否则
//用cout语句输出的是科学计数法会少数据
return 0;
}