本帖最后由 周文斌 于 2013-9-15 14:26 编辑
- import java.util.ArrayList;
- class Muniu
- {
- private int age=1;
-
- Muniu(){};
- Muniu( int age )
- {
- this.age=age;
- };
-
- public void setAge( int age )
- {
- this.age =age;
- }
-
- public int getAge()
- {
- return this.age;
- }
- }
- public class interviewMuniu {
- public static void main(String[] args)
- {
- //母牛群Munius,将所有母牛加入到Munius,20年后调用size()查看长度可得母牛数
- ArrayList<Muniu> Munius = new ArrayList<Muniu>();
-
- //加入老母牛age>=5即可
- Munius.add(new Muniu(6));
-
- //每过一年,所有母牛加一岁,然后判断是否生仔
- for(int i=1 ; i<=20 ; i++)
- {
- //当年牛群中母牛数量
- int MuniusLength = Munius.size();
-
- //取得每一只母牛,进行长岁,和是否生仔
- //注意:此处不可直接j<Munius.size(),当前循环的次数应是固定的,而Munius.size()岁新生母牛增加而增长,会导致新生母牛加入了也加入了本年计算。
- //当然本需求下也有办法可以直接j<Munius.size(),将Muniu类中age初始化为0即可。
- for( int j=0 ; j<MuniusLength ; j++ )
- {
-
- Muniu temp = (Muniu)Munius.get(j);
-
- temp.setAge(temp.getAge()+1);
- if(temp.getAge() >= 5)
- {
- //成功生仔,加入牛群
- Munius.add(new Muniu());
- }
- }
- System.out.println("第"+i+"年过去,现在有母牛"+Munius.size()+"头");
- /*
- for(int j=1 ; j<=Munius.size() ; j++){
- System.out.println("NO。"+j+"号母牛,今年"+Munius.get(j-1).getAge()+"岁");
- }
- */
- }
-
- System.out.println("20年过去,总共有母牛:"+Munius.size());
- }
- }
复制代码 结果会因各人对需求边界的理解而有少许出入。 |