面试题: 20年后农场中有多少头牛?
3460 点击·0 回帖
![]() | ![]() | |
![]() | package cn.itcast.day22.test; import java.util.ArrayList; import java.util.List; /* * 面试题: 农场中有2头牛, 每3年可以生2头小牛, 小牛每3年也可以生产2头小牛. 牛的寿命是10年. 问: 20年后农场中有多少头牛? */ public class CowTest { public static void main(String[] args) { // 农场中最初有2头牛 Cow.farm.add(new Cow()); Cow.farm.add(new Cow()); // 循环20次, 代表20年 for (int i = 0; i < 20; i++) { // 创建一个新的集合, 记住农场中所有的牛 List<Cow> temp = new ArrayList<Cow>(); temp.addAll(Cow.farm); // 循环遍历所有的牛, 全部长大1岁 for(int j = 0; j < temp.size(); j++) temp.get(j).growup(); } // 循环20次之后, 获取牛的个数 System.out.println(Cow.farm.size()); } } class Cow { private int age; // 牛的年龄 public static List<Cow> farm = new ArrayList<Cow>(); // 农场 public void growup(){ age++; if(age % 3 == 0) farm.add(new Cow()); if(age == 10) farm.remove(this); } } | |
![]() | ![]() |