本文属贫僧不吃肉原创,欢迎转载,转载请注明来自 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...
问题是计算在n年后,农场上总共有多少头牛。 ### 解析C语言代码 代码中使用了循环和变量来追踪每一年牛的数量变化。以下是代码的逐行解释: 1. **引入标准输入输出库**:`#include"iostream"` 这是C++的标准输入...
5. **模型建立与求解**: - 通过迭代计算,将模型简化为收入和支出的表达式,考虑银行贷款利息和收支平衡。 - 使用非线性规划模型,并借助MATLAB编程,当利率为2.75%时,得出最优解:第一年保留22头幼牛,第二年...
•实现了对象交互和操纵,以及在环境中移动并使其与声音和信息文本交互的旅行技术。 农场到餐桌的教育者概念为HTC Vive开发了一个VR应用程序,向用户教授有关农场食品的知识。 开发了虚拟农场环境。 一个。 高...
所以,正确处理是农场有权领回母牛和小牛,但母牛耕地所赚的3300元应归农场所有。 以上案例分析展示了合同法中风险转移原则、无因管理责任、物权法中孳息归属以及不当得利的处理原则,这些都是专利代理人考试中可能...
在生产部门,安大略省有4,800个乳牛场,平均每场约54头母牛,年产量总计约25亿升。供应通过配额系统进行管理,农场主可以通过配额交换来调整产能。加工部门则由20家流质牛奶厂和45家工业牛奶厂构成,根据需求和工厂...
为了测试该补充剂在商业农场中的应用,泌乳母牛的泽西(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...
这个单元帮助孩子们接触和学习关于蔬菜、动物以及与农场生活相关的表达方式,提升他们的语言应用能力。 首先,我们来看看核心词汇。在这一单元中,孩子们会学习到四种主要的蔬菜名词:tomato(西红柿)、potato...
1. **动物词汇**:在本单元中,学生需要掌握一系列农场动物的英文名称,如hen(母鸡)、chick(小鸡)、duck(鸭子)、cow(母牛)、sheep(绵羊)和pig(猪)。此外,还涉及到一些其他动物,如frog(青蛙)、bird...
这项工作是在马尔多纳多(乌拉圭)拉古纳·德尔·索斯(Laguna del Sauce)的一家商业农场(Talar)中进行的。 在6周的实验期内,将24头母牛分配为两种处理方法之一(每处理12头母牛)。 处理包括不添加脂类(L)或...
牧场系统可视化娱乐系统是一种将传统的畜牧业管理与现代信息技术相结合的创新模式,主要应用于网上农场这一领域。这个系统通过数字化和可视化技术,为用户提供了实时、直观的牧场管理和娱乐体验。 在这样的系统中,...