`

算法:牛生小牛

 
阅读更多
1.问题描述:
    有一头牛,每年年初生一头小牛,每头小牛第四个年头每年年初也生一头小牛,按此规律,若无牛死亡,第N年有多少头牛?
2.表格分析:
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;
    }
}
 
  • 大小: 12.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics