i met a interview question while i watch the design pattern vedios of MaShiBing, it's interesting, i wrote them down with the OO design, here it is:
* 农场一头小母牛
* 每年生头小母牛
* 母牛五岁产母牛
* 二十年上多少牛
package com.j2se.Interview.howmanycowsin20years;
import java.util.Collection;
import java.util.HashSet;
public class Farm {
private Collection<Cow> cows = new HashSet<Cow>();
public Collection<Cow> getCows() {
return cows;
}
public void addCows(Collection<Cow> newCows) {
cows.addAll(newCows);
}
@Override
public String toString() {
return "Farm [cows=" + cows + "]";
}
}
package com.j2se.Interview.howmanycowsin20years;
public class Cow {
private int age;
public Cow(int age) {
super();
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isBornable() {
return age >= 5;
}
public Cow lay() {
return new Cow(0);
}
public void grow() {
age++;
}
@Override
public String toString() {
return "age=" + age;
}
}
package com.j2se.Interview.howmanycowsin20years;
import java.util.Collection;
/**
* 农场一头小母牛
* 每年生头小母牛
* 母牛五岁产母牛
* 二十年上多少牛
* @author Administrator
*
*/
public class HowManyCowsIn20Years {
public static void main(String[] args) {
Farm farm = new Farm();
farm.getCows().add(new Cow(0));
for (int i = 0; i < 20; i++) {
Collection<Cow> newBornCows = new HashSet<Cow>();
for (Cow cow : farm.getCows()) {
if (cow.isBornable()) {
newBornCows.add(cow.lay());
}
cow.grow();
}
farm.addCows(newBornCows);
System.out.println("第" + (i + 1) + "年共有" + farm.getCows().size() + "头牛:" + farm);
}
System.out.println("\nTotal cow in farm after 20 years are : " + farm.getCows().size());
}
}
output is:
第1年共有1头牛:Farm [cows=[age=1]]
第2年共有1头牛:Farm [cows=[age=2]]
第3年共有1头牛:Farm [cows=[age=3]]
第4年共有1头牛:Farm [cows=[age=4]]
第5年共有1头牛:Farm [cows=[age=5]]
第6年共有2头牛:Farm [cows=[age=0, age=6]]
第7年共有3头牛:Farm [cows=[age=0, age=1, age=7]]
第8年共有4头牛:Farm [cows=[age=1, age=2, age=8, age=0]]
第9年共有5头牛:Farm [cows=[age=2, age=3, age=9, age=1, age=0]]
第10年共有6头牛:Farm [cows=[age=3, age=4, age=10, age=2, age=0, age=1]]
第11年共有7头牛:Farm [cows=[age=4, age=5, age=11, age=0, age=3, age=1, age=2]]
第12年共有9头牛:Farm [cows=[age=5, age=6, age=12, age=1, age=4, age=0, age=0, age=2, age=3]]
第13年共有12头牛:Farm [cows=[age=0, age=6, age=7, age=13, age=2, age=5, age=1, age=1, age=3, age=4, age=0, age=0]]
第14年共有16头牛:Farm [cows=[age=14, age=0, age=4, age=1, age=7, age=0, age=8, age=0, age=0, age=6, age=3, age=2, age=5, age=2, age=1, age=1]]
第15年共有21头牛:Farm [cows=[age=0, age=15, age=1, age=5, age=0, age=0, age=2, age=8, age=0, age=1, age=9, age=1, age=1, age=7, age=4, age=3, age=0, age=6, age=3, age=2, age=2]]
第16年共有27头牛:Farm [cows=[age=1, age=0, age=16, age=0, age=6, age=0, age=0, age=3, age=9, age=0, age=2, age=4, age=3, age=2, age=1, age=1, age=2, age=1, age=10, age=2, age=5, age=8, age=4, age=7, age=1,
age=0, age=3]]
第17年共有34头牛:Farm [cows=[age=2, age=1, age=17, age=1, age=7, age=1, age=1, age=4, age=10, age=0, age=1, age=3, age=0, age=5, age=0, age=4, age=0, age=0, age=0, age=3, age=0, age=2, age=2, age=3, age=2,
age=11, age=3, age=6, age=9, age=5, age=8, age=2, age=1, age=4]]
第18年共有43头牛:Farm [cows=[age=0, age=3, age=0, age=2, age=18, age=2, age=8, age=0, age=2, age=0, age=2, age=5, age=11, age=1, age=2, age=0, age=4, age=1, age=6, age=1, age=0, age=5, age=1, age=1, age=1,
age=0, age=4, age=1, age=0, age=3, age=0, age=3, age=4, age=3, age=12, age=4, age=7, age=10, age=6, age=9, age=3, age=2, age=5]]
第19年共有55头牛:Farm [cows=[age=0, age=1, age=0, age=1, age=3, age=0, age=0, age=9, age=0, age=1, age=3, age=6, age=12, age=2, age=0, age=3, age=1, age=5, age=7, age=2, age=0, age=6, age=1, age=0, age=4, a
ge=0, age=13, age=5, age=11, age=4, age=10, age=3, age=4, age=3, age=0, age=19, age=3, age=1, age=0, age=2, age=1, age=2, age=2, age=0, age=2, age=5, age=2, age=1, age=4, age=1, age=4, age=5, age=8, a
ge=7, age=6]]
第20年共有71头牛:Farm [cows=[age=1, age=0, age=2, age=1, age=2, age=4, age=1, age=1, age=10, age=0, age=1, age=2, age=4, age=0, age=7, age=13, age=3, age=1, age=0, age=4, age=2, age=0, age=6, age=8, age=3,
age=0, age=1, age=7, age=0, age=2, age=0, age=0, age=1, age=5, age=1, age=0, age=14, age=6, age=12, age=5, age=11, age=4, age=0, age=5, age=0, age=4, age=1, age=20, age=4, age=2, age=0, age=1, age=3,
age=2, age=3, age=0, age=3, age=1, age=3, age=0, age=6, age=0, age=3, age=2, age=5, age=2, age=5, age=6, age=9, age=8, age=7]]
Total cow in farm after 20 years are : 71
分享到:
相关推荐
足不出户就可以租地种植自己的蔬菜了,养殖鸡鸭牛羊,通过智慧农场发监控视屏,实时查看自己种植的蔬菜,让健康24小时看得见。 智慧农场共享农业为主,打破传统农业种植变现难的问题,传统农业种植的产品,需要种植...
足不出户就可以租地种植自己的蔬菜了,养殖鸡鸭牛羊,通过智慧农场发监控视屏,实时查看自己种植的蔬菜,让健康24小时看得见。 智慧农场共享农业为主,打破传统农业种植变现难的问题,传统农业种植的产品,需要种植...
足不出户就可以租地种植自己的蔬菜了,养殖鸡鸭牛羊,通过智慧农场发监控视屏,实时查看自己种植的蔬菜,让健康24小时看得见。 智慧农场共享农业为主,打破传统农业种植变现难的问题,传统农业种植的产品,需要种植...
东东农场自动化脚本
问题描述: 假设单性繁殖成立,一头母牛从出生第四年起每年生一头母牛,生出的小母牛在四岁时也将具有生殖能力。以此类推,第n年时有多少头母牛?
2010年首次公开开心农场源码 最新、最全开心农场源码。
(仅供学习)开源源码统H5农场复利源码带商城仓库商店模块农场复利理财系统 淘金农场源码游戏攻略,包括果实、土地、道具、神像、宠物、工坊、训练场等介绍 黄金家园游戏将创造一个新的游戏体制,主要是以农场土地...
智慧农场小程序集双端源码分享 后台模块+前端小程序 智慧农场小程序是一款农场租地种植、畜牧领养、智慧农场商城、 拼购组团商城、签到积分商城、分销功能、物联网实时监测、 积分兑换、农场直播对接等为一体的农业...
20xx年农场述职报告范文.docx
农场游戏源码 种植养殖果园吸粉理财 农场源码 淘金农场 复利拆分 分红源码。 个人收益:先升级农场!在升级果树果树每天都可以产生鲜果!每天产生的都是你的个人收益!果树等级越高,团队,直推,收益也越高!提示...
足不出户就可以租地种植自己的蔬菜了,养殖鸡鸭牛羊,通过智慧农场发监控视屏,实时查看自己种植的蔬菜,让健康24小时看得见。 智慧农场共享农业为主,打破传统农业种植变现难的问题,传统农业种植的产品,需要种植...
农场开发项目-QQ农场源码 农场开发项目-QQ农场源码
QQ农场html源代码,实现播种、采摘、翻地三个功能,希望对大家有帮助!
20xx年农场长述职报告范文.docx
20xx年农场职工年中述职报告.docx
Word模板-奶牛农场背景.wps
用C#编写的单机版的开心农场! 用于学习!
八戒农场v1.9.1小程序是一个很好的农场筹款平台,在那里你可以自由地饲养宠物、猪、牛来赚钱,并且可以为不同种类的动物筹集不同种类的收入,现在下载注册用户还可以得到小猪奖励哦,只要你在平台上饲养就可以赚钱,...