题目:农场一头特别的老母牛,每年都生出一只小母牛,而它生出的小母牛长到5岁时又能生出小母牛,问二十年后农场内有多少母牛?(所有的牛的是母的),以面向对象思想编写程序解答
public class Cow {
/**
* 那只特殊老母牛生的小母牛,小母牛是到5岁在生一只小母牛
*/
private int age;
private List<Cow> children=new ArrayList<Cow>();
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public List<Cow> getChildren() {
return children;
}
public void setChildren(List<Cow> children) {
this.children = children;
}
public Cow isBurn(){
Cow cow=null;
if(age==5){
cow=new Cow();
children.add(cow);
return cow;
}else{
return null;
}
}
}
public class Farm {
public static int sum=0;
private void burn(Cow cow){
Cow child=null;
if(null!=(child=cow.isBurn())){
sum++;
}
for(Cow c:cow.getChildren()){
c.setAge(c.getAge()+1);
burn(c);
}
}
public int cal(int year){
List<Cow> children=new ArrayList<Cow>(); //这头特殊的老母牛的孩子
for(int i=1;i<=year;i++){
Cow cow=new Cow();
children.add(cow);
sum++;
for(Cow c:children){
c.setAge(c.getAge()+1);
burn(c);
}
}
return sum;
}
public static void main(String[] args) {
Farm f=new Farm();
System.out.println(f.cal(20));
}
}
不确定对不对,欢迎指教