黑马程序员技术交流社区

标题: 母牛生小牛问题 [打印本页]

作者: 冷漠无天    时间: 2013-9-15 11:41
标题: 母牛生小牛问题
农场一头老母牛,每年生头小母牛,母牛5岁生母牛,二十年上多少牛。请用面向对象的思维来做这道题

作者: 周文斌    时间: 2013-9-15 14:25
本帖最后由 周文斌 于 2013-9-15 14:26 编辑
  1. import java.util.ArrayList;

  2. class Muniu
  3. {
  4.         private int age=1;
  5.        
  6.         Muniu(){};
  7.         Muniu( int age )
  8.         {
  9.                 this.age=age;
  10.         };
  11.        
  12.         public void setAge( int age )
  13.         {
  14.                 this.age =age;
  15.         }
  16.        
  17.         public int getAge()
  18.         {
  19.                 return this.age;
  20.         }
  21. }

  22. public class interviewMuniu {
  23.         public static void main(String[] args)
  24.         {
  25.                 //母牛群Munius,将所有母牛加入到Munius,20年后调用size()查看长度可得母牛数
  26.                 ArrayList<Muniu> Munius = new ArrayList<Muniu>();
  27.                
  28.                 //加入老母牛age>=5即可
  29.                 Munius.add(new Muniu(6));
  30.                
  31.                 //每过一年,所有母牛加一岁,然后判断是否生仔
  32.                 for(int i=1 ; i<=20 ; i++)
  33.                 {
  34.                         //当年牛群中母牛数量
  35.                         int MuniusLength = Munius.size();
  36.                        
  37.                         //取得每一只母牛,进行长岁,和是否生仔
  38.                         //注意:此处不可直接j<Munius.size(),当前循环的次数应是固定的,而Munius.size()岁新生母牛增加而增长,会导致新生母牛加入了也加入了本年计算。
  39.                         //当然本需求下也有办法可以直接j<Munius.size(),将Muniu类中age初始化为0即可。
  40.                         for( int j=0 ; j<MuniusLength ; j++ )
  41.                         {
  42.                                
  43.                                 Muniu temp = (Muniu)Munius.get(j);
  44.                                
  45.                                 temp.setAge(temp.getAge()+1);
  46.                                 if(temp.getAge() >= 5)
  47.                                 {
  48.                                         //成功生仔,加入牛群
  49.                                         Munius.add(new Muniu());
  50.                                 }
  51.                         }
  52.                         System.out.println("第"+i+"年过去,现在有母牛"+Munius.size()+"头");
  53.                         /*
  54.                         for(int j=1 ; j<=Munius.size() ; j++){
  55.                                 System.out.println("NO。"+j+"号母牛,今年"+Munius.get(j-1).getAge()+"岁");
  56.                         }
  57.                         */
  58.                 }
  59.                
  60.                 System.out.println("20年过去,总共有母牛:"+Munius.size());
  61.         }
  62. }
复制代码
结果会因各人对需求边界的理解而有少许出入。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2