微生物增值

/*假设有两种微生物 X 和 Y
X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。
一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。
现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。
如果X=10,Y=90  呢?

本题的要求就是写出这两种初始条件下,60分钟后Y的数目。*/

--------------------------------------------------------------code1-------------------------------------------------------------------------------------------

public class AL21 {


	/**
	 * @param args
	 */
	public static void main(String[] args) {
		float res=add(10,89,60)>0?add(10,89,60):0;		
		System.out.println(res);
		System.out.println(add(10,90,60)>0?add(10,90,60):0);


	}
	public static long add(long x,long y ,int m)
	{
		int n=1;
		while(n<=m)
		{
			y=y-x;
			if(n%2==0) y=y*2;
			if(n%3==0) x=x*2;
			n++;
		}
		return y;
	}
}


--------------------------------------------------------code2------------------------------------------------------------------------

//idea: 把1分钟拆成两个半分钟,那么60分钟就是120个半分钟
publicclass AL22{
    publicstaticvoidcalculate(intprimaryNumX,intprimaryNumY,inttimesOfMinute) {
        intnumX=primaryNumX,numY=primaryNumY;
        for (int i = 2; i<=timesOfMinute*2; i++) {
            if(numY<=0){
                numY=0;
                break;
            }
            if(i%2==0){
                numY-=primaryNumX;// 当为整数分钟时,最初数目的生物X将进食同等数目的生物Y
            }
            elseif(i%2==1){
                numY-=(numX-primaryNumX);//当为半数分钟的奇数倍时,由最初的生物X增值产生的生物X将进食同等数目的生物Y
            }
            if(i%6==0){
                numX*=2;   //三分钟的整数倍,生物X增值一倍
            }
            if(i%4==0){
                numY*=2;//两分钟的整数倍,生物Y增值一倍
            }
        }
        System.out.println(numY);
    }
    publicstaticvoidmain(String[] args) {
       
        calculate(10,89, 60);
        calculate(10,90, 60);
}
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值