一个JavaSE的题,大家进来看看

gundam_wing 2010-07-14 09:46:25
一个农场有一头母牛,这头母牛每年生一头小母牛,小母牛五岁的时候开始每年生一头小母牛,问20年后,这个农场有多少头牛。我自己太菜,试着弄一下总不对。Cow是另外一个类,就一个属性age,一个get和set方法,有个Cow(age)的构造方法。下面这个是错的,错在什么地方啊
import java.util.ArrayList;
import java.util.List;

public class Test {

public static void main(String[] args) {

Cow cow = new Cow(5);
List<Cow> list = new ArrayList<Cow>();
int year = 20;

list.add(cow);
for (int i = 0; i < year; i++) {
for (Cow co : list) {
if(co.getAge()>=5) {
list.add(new Cow(0));
}
co.setAge(co.getAge() + 1);


break;
}

}
System.out.println(list.size());

}

}
...全文
81 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bapeiaw 2010-07-14
  • 打赏
  • 举报
回复
用递归可以解决!
gundam_wing 2010-07-14
  • 打赏
  • 举报
回复
嗯,多谢LS了,我结贴了,thanks
smileflyer 2010-07-14
  • 打赏
  • 举报
回复
import java.util.ArrayList;
import java.util.List;


public class Test {
public static void main(String[] args) {
List<Cow> list = new ArrayList<Cow>();
list.add(new Cow(5));

int addNum = 0;

for(int i=0;i<20;i++) {
addNum = 0;
for(Cow c:list) {
if(c.getAge() >= 5) {
addNum++;
}
System.out.print(c.getAge() + " ");
c.setAge(c.getAge() + 1);
}

System.out.println();


for(int j=0;j<addNum;++j) {
list.add(new Cow(0));
}
}

System.out.println("==============" + list.size());
}

private static class Cow{
private int age;
public Cow(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
}


output:
251


Good Luck

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧