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
分享到:
相关推荐
QQ农场是一款在中国极为流行的社交网络游戏,它以模拟农场经营为主题,玩家可以种植作物、饲养动物,体验虚拟农业生活。这份"QQ农场html源代码"提供的是游戏的核心逻辑和界面展示部分,主要涉及到Web开发中的HTML、...
足不出户就可以租地种植自己的蔬菜了,养殖鸡鸭牛羊,通过智慧农场发监控视屏,实时查看自己种植的蔬菜,让健康24小时看得见。 智慧农场共享农业为主,打破传统农业种植变现难的问题,传统农业种植的产品,需要种植...
东东农场自动化脚本
足不出户就可以租地种植自己的蔬菜了,养殖鸡鸭牛羊,通过智慧农场发监控视屏,实时查看自己种植的蔬菜,让健康24小时看得见。 智慧农场共享农业为主,打破传统农业种植变现难的问题,传统农业种植的产品,需要种植...
问题描述: 假设单性繁殖成立,一头母牛从出生第四年起每年生一头母牛,生出的小母牛在四岁时也将具有生殖能力。以此类推,第n年时有多少头母牛?
足不出户就可以租地种植自己的蔬菜了,养殖鸡鸭牛羊,通过智慧农场发监控视屏,实时查看自己种植的蔬菜,让健康24小时看得见。 智慧农场共享农业为主,打破传统农业种植变现难的问题,传统农业种植的产品,需要种植...
【标题】"开心农场 源码(腾讯农场)"揭示了这是一个关于腾讯公司早期非常流行的社交游戏——开心农场的游戏源代码。开心农场是中国互联网上的一款现象级应用,它让玩家可以模拟种植、收割作物,饲养动物,体验虚拟...
《开心农场源码详解——揭示2010年的游戏开发技术》 在2010年,一款名为“开心农场”的社交游戏风靡全球,它以其独特的种植、收割、偷菜玩法吸引了无数玩家。今天,我们将深入探讨这款游戏的源码,揭示其背后的开发...
智慧农场小程序集双端源码分享 后台模块+前端小程序 智慧农场小程序是一款农场租地种植、畜牧领养、智慧农场商城、 拼购组团商城、签到积分商城、分销功能、物联网实时监测、 积分兑换、农场直播对接等为一体的农业...
例如,每头牛需要特定的土地面积,每种作物的种植面积受限,劳动时间有上限,且贷款的年利率会影响财务状况。 在具体操作中,模型会根据当前的状态(如牛的数量、作物库存、贷款余额等)和未来的预测(如牛的成长、...
足不出户就可以租地种植自己的蔬菜了,养殖鸡鸭牛羊,通过智慧农场发监控视屏,实时查看自己种植的蔬菜,让健康24小时看得见。 智慧农场共享农业为主,打破传统农业种植变现难的问题,传统农业种植的产品,需要种植...
(仅供学习)开源源码统H5农场复利源码带商城仓库商店模块农场复利理财系统 淘金农场源码游戏攻略,包括果实、土地、道具、神像、宠物、工坊、训练场等介绍 黄金家园游戏将创造一个新的游戏体制,主要是以农场土地...
20xx年农场述职报告范文.docx
"开心农场 JS版"是一个基于JavaScript的在线游戏项目,它模拟了现实生活中农场经营的场景,用户可以在虚拟的农场上种植、收获作物,饲养动物,体验农场生活。在这个项目中,JavaScript作为主要的编程语言,负责处理...
农场游戏源码 种植养殖果园吸粉理财 农场源码 淘金农场 复利拆分 分红源码。 个人收益:先升级农场!在升级果树果树每天都可以产生鲜果!每天产生的都是你的个人收益!果树等级越高,团队,直推,收益也越高!提示...
农场开发项目-QQ农场源码 农场开发项目-QQ农场源码
养殖:除了种植作物,玩家还可以在农场中养殖动物,如鸡、猪、牛等,需要定期喂食、清洁等。 互动:QQ农场是一个社交游戏,玩家可以邀请好友一起经营农场,互相赠送礼物、帮助清理农场等。 升级:通过不断经营,玩家...
足不出户就可以租地种植自己的蔬菜了,养殖鸡鸭牛羊,通过智慧农场发监控视屏,实时查看自己种植的蔬菜,让健康24小时看得见。 智慧农场共享农业为主,打破传统农业种植变现难的问题,传统农业种植的产品,需要种植...
20xx年农场长述职报告范文.docx
20xx年农场职工年中述职报告.docx