初始有一个刚出生的细菌,新细菌20分钟后可进行繁殖,每30分钟繁殖两个(注:新繁殖出来的细菌也可以繁殖,20分钟生第一代,50分钟生第二代),但是每个细菌最多可以繁殖3代,细菌150分钟后自然死亡,请用面向对象思想设计实现计算n分钟内细菌总数
3条回答 默认 最新
穹龙 2021-04-11 10:15关注@Test public void test1() { Integer limitTime = 80; Integer nowTime = 1; List<Cell> cellList = new ArrayList<>(); Cell cell = new Cell(0); cellList.add(cell); for(int i=0;i<limitTime;i++){ List<Integer> num = new ArrayList<>(); for(int j = 0;j<cellList.size();j++){ if(cellList.get(j).getDieTime()==nowTime){ num.add(j); } } for(int j = 0;j<num.size();j++){ cellList.remove(num.get(j)); } for(int j = 0;j<cellList.size();j++){ if(nowTime-cellList.get(j).getBirthTime()==20){ Cell cell1 = new Cell(nowTime); cellList.add(cell1); }else if((nowTime-cellList.get(j).getBirthTime()-20)%30==0){ Cell cell1 = new Cell(nowTime); cellList.add(cell1); } } nowTime = nowTime + 1; } System.out.println(cellList.size()); } public class Cell { private Integer birthTime; private Integer dieTime; Cell(Integer nowTime) { this.birthTime = nowTime; this.dieTime = nowTime + 150; } }细菌类:出生的时间,死亡时间;构造方法直接设置死亡时间为出生时间后的150分钟
从i=0开始循环直到输入的时间,每次循环都先剔除已经到死亡时间的细菌,再循环判断细菌是否已经到增殖时间
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用 1