1.问题描述:
有一头牛,每年年初生一头小牛,每头小牛第四个年头每年年初也生一头小牛,按此规律,若无牛死亡,第N年有多少头牛?
2.表格分析:
3.程序解释:
用list存牛的信息,list的size就是牛的数量;

3.程序解释:
用list存牛的信息,list的size就是牛的数量;
牛类,重要属性为age(年龄),根据年龄判断是否可以生育,如果可以,则创建新的牛类放入list中
4.代码:
import java.util.ArrayList;
import java.util.List;
public class $ {
private static List<Cow> data = new ArrayList<Cow>();
public static void main(String[] args) {
Cow cowA = new Cow(4);
data.add(cowA);
test(20);
}
private static void test(int year) {
for (int i = 1; i <= year; i++) {
int len = data.size();
for (int j = 0; j < len; j++) {
Cow cow = data.get(j);
cow.addAge();
if (cow.bear()) {
data.add(new Cow(1));
}
}
System.out.println("第" + i + "年:" + data.size());
}
}
}
class Cow {
private int age;
public Cow(int age) {
this.age = age;
}
public void addAge() {
this.age++;
}
public boolean bear() {
return age >= 4;
}
}