题目描述:
假设有两种微生物 X 和 Y
X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)
一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。
现在已知有新出生的 X=10,Y=90,求60分钟后Y的数目。
解题思路:
半分钟为一个单位,摸索规律:
单位(i) | x数量 | y数量 |
0 | 10 | 90 |
1 | 10 | 90-10=80 |
2 | 10 | 80 |
3 | 10 | 80-10=70 |
4 | 10 | 70*2=140 |
5 | 10 | 140-10=130 |
6 | 10*2=20 | 130 |
7 | 20 | 130-20=110 |
8 | 20 | 110*2=220 |
对2取余为1:吃一次Y
对4取余为0:Y分裂
对6取余为0:X分裂
Java程序:
public class microorganism {//微生物增殖
public static void main(String[] args){
int x=10,y=90;
for(int i=0;i<120;i++){//单位为半分钟
if(y<=0){
y=0;
break;
}
if(i%2==1){ // y被吃
y-=x;
}if(i%4==0){ // y分裂
y*=2;
}if(i%6==0){ // x分裂
x*=2;
}
}
System.out.println(y);
}
}
答案:
94371840