黑马程序员技术交流社区
标题:
母牛生小牛问题
[打印本页]
作者:
冷漠无天
时间:
2013-9-15 11:41
标题:
母牛生小牛问题
农场一头老母牛,每年生头小母牛,母牛5岁生母牛,二十年上多少牛。请用面向对象的思维来做这道题
作者:
周文斌
时间:
2013-9-15 14:25
本帖最后由 周文斌 于 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());
}
}
复制代码
结果会因各人对需求边界的理解而有少许出入。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2