本文属贫僧不吃肉原创,欢迎转载,转载请注明来自 http://never-say-never.iteye.com/blog/851512
今天看马士兵老师的视频,看见了一道有意思的笔试题,农场与母牛
题目是这样的:
农场一头小母牛,
母牛五岁产母牛,
每年生头小母牛,
二十年有多少牛。
感兴趣的同学请在此思考20秒。。。。
看到此题,我的第一反应就是递归啊、函数什么的。接着老师说了一句:“请不要先把思维陷入到算法里,先用面向对象的思维来考虑……”。 这时,我才突然反应过来,我的面向过程思维根深蒂固,面向对象思维还需加强呐!同时,由于换了个思维,所以这道题也勾起了我的兴趣,于是着手实现起来…
//母牛类
public class Cow {
private int age; //有一个属性,年龄
public Cow(){
this.age=0; //构造函数,默认生下来的小崽为0岁
}
public void grow(){
this.age++; //长一岁
}
public int getAge(){
return age; //返回牛的年龄
}
//生崽
public void lay(Farm f){
f.addCow();
}
}
接着抽象农场类
import java.util.Vector;
public class Farm {
private Vector<Cow> cows; //农场的牛群,用vector盛放,
private int count=0; //农场的总牛数
public Farm(){
cows=new Vector(); //若不new Vector直接赋值为null的话会引发空指针异常
}
//得到总牛数
public int getCount() {
count=cows.size();
return count;
}
//增加一头牛
public void addCow(){
this.cows.addElement(new Cow());
}
//农场进入下一年,满了5岁的牛就产崽并长一岁,没满的就只长一岁
public void nextYear(){
int before=cows.size();
for(int i=0;i<before;i++){
Cow c=(Cow)cows.elementAt(i);
if(c.getAge()>=5){
c.grow();
c.lay(this);
}
else{
c.grow();
}
}
}
//为了显示方便,我就直接把main写在Farm类里面了
public static void main(String [] args){
Farm farm=new Farm();
farm.addCow();
for(int i=1;i<=20;i++){
farm.nextYear();
System.out.println("第 "+i+"年有牛 :"+farm.getCount());
}
}
}
第 1年有牛 :1
第 2年有牛 :1
第 3年有牛 :1
第 4年有牛 :1
第 5年有牛 :1
第 6年有牛 :2
第 7年有牛 :3
第 8年有牛 :4
第 9年有牛 :5
第 10年有牛 :6
第 11年有牛 :7
第 12年有牛 :9
第 13年有牛 :12
第 14年有牛 :16
第 15年有牛 :21
第 16年有牛 :27
第 17年有牛 :34
第 18年有牛 :43
第 19年有牛 :55
第 20年有牛 :71
在纸上推了一下,貌似是对的。
题目不难,但是有一些细节如果没注意的话,还是会很恼人,牛是在第5岁的时候产下崽还是第6岁的时候把崽产下来,比如刚生下来的崽是0岁而不是1岁,对象的引用,等。
所以,虽然简单,也还是花了我一些时间的~
再送个好玩的段子~
女孩问男孩: "abcdefg是什么意思呀"?
男孩想了一会说:“A boy can do everything for girl"。
最后,附上代码供大家交流~~
分享到:
相关推荐
这是一道编程题目 母牛生小牛 我编的还不错啊 呵呵
roblem 2 母牛生小牛问题 设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛? Input 本题有多组数据。每组数据只有一个整数N,独占一行。(1≤N≤50) Output 对每组数据,输出一个...
问题描述: 假设单性繁殖成立,一头母牛从出生第四年起每年生一头母牛,生出的小母牛在四岁时也将具有生殖能力。以此类推,第n年时有多少头母牛?
农场规划最全面的lingo代码 model: title 农场规划问题; sets: year/1,2,3,4,5,6/:s,x,m,q,y,n,r,z,p; age/1..12/; cow_number(year,age):B; endsets !变量说明: s-每年卖的初生小母牛的数目(单位:只) z...
•实现了对象交互和操纵,以及在环境中移动并使其与声音和信息文本交互的旅行技术。 农场到餐桌的教育者概念为HTC Vive开发了一个VR应用程序,向用户教授有关农场食品的知识。 开发了虚拟农场环境。 一个。 高...
为了测试该补充剂在商业农场中的应用,泌乳母牛的泽西(n = 121)和荷斯坦-弗里斯兰(HF,n = 275)接受了500 g含3%Mootral粉的颗粒,持续12周。 使用手持式激光甲烷检测器监测其肠甲烷气的产生。 在Mootral补充前...
从19个农场的337个Holstein-Friesian小母牛那里收集血样,并通过PCR限制性片段长度多态性进行基因分型。 从6个月到2340d龄监测动物。 获得家谱,产奶量和疾病记录。 基因型频率为CC 0.63,CG 0.30和GG 0.06。 C等位...
在这些农场中,哺乳期的母牛接受了益生菌酵母补充(5 g /牛/天,Actisaf:registered:,酿酒酵母Sc47-CNCM I-4407、1.1010 CFU / g,Phileo Lesaffre动物保健公司,法国马克·恩·巴罗勒) 13个月,包括适应产品的4...
这项工作是在马尔多纳多(乌拉圭)拉古纳·德尔·索斯(Laguna del Sauce)的一家商业农场(Talar)中进行的。 在6周的实验期内,将24头母牛分配为两种处理方法之一(每处理12头母牛)。 处理包括不添加脂类(L)或...
在每个新选项卡上都包括母牛的高清图像。 对于小动物,农场动物,牛马和其他动物的迷们! 在每个新选项卡上都包括母牛的高清图像。 对于小动物,农场动物,牛,马等等的迷! 请给我们评分! 如果您觉得我们不值得5...
贪婪的农民挤奶是为了牟利 作为General Cow,您的任务是破坏这些贪婪的农民。 贪婪的农民挤奶是为了牟利。 作为General Cow,您的任务是...-美丽的农场风光-轻松的主题,适合下午坐下游戏 支持语言:English,中文 (繁體)
与以牧场为基础的系统相比,密闭乳制品系统中生产的牛奶的特征在于高饱和脂肪(SF)含量和较低浓度的健康脂肪酸(FA),例如疫苗(VA,trans-11C18:1),共轭亚油酸(顺式9,反式11 C18:2,CLA),α-亚麻酸(顺式...
背景:继承与多态在本作业中,我们将使用Old MacDonald's Farm学习如何implements和extends工作以及继承和多态的含义。定义接口老麦克唐纳(Old MacDonald)的农场有几种动物。 每只动物都具有某些特征:它们具有...
《鸭子骑车记》绘本故事PPT 有一天,在农场里,鸭子冒出一个疯狂的主意,我打赌我会骑车他一摇一摆地走到男孩停着的自行车旁,爬上去,骑了起来。开始他骑得很慢,而且左摇右晃,但是很好玩! 鸭子骑过母牛身旁,冲...