农夫养牛问题
来源:互联网 发布:淘宝客服一般什么待遇 编辑:程序博客网 时间:2024/04/30 11:06
在 http://polaris.blog.51cto.com/1146394/399738 这里看到了一道数学题:
一头母牛在3—10岁的时候每年可以生一头小牛,生公牛和母牛的比率是50%,在牛12岁的时候就送入屠宰场买了。
现在有一个农夫有1头1岁大的母牛,在母牛3岁的时候就送到附近的农场去配种,请问40年后这个农夫可能会有多少头牛,
写出相关的代码或答题思路,最好用面向对象。
下面给出我自己写的代码,如果有不对的还请指正~
牛类,Cow.java:
package test.question.niu;public class Cow {int age;char sex;//F母 M公char childSex; //最近生下的孩子的性别public Cow(int age,char sex){this.age=age;this.sex=sex;}public char getChildSex() {return childSex;}public void setChildSex(char childSex) {this.childSex = childSex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getSex() {return sex;}public void setSex(char sex) {this.sex = sex;}}
农夫类,Farmer.java
package test.question.niu;import java.util.ArrayList;import java.util.List;public class Farmer {List<Cow> cowList = new ArrayList<Cow>();public Farmer(){Cow cow = new Cow(1,'F');this.cowList.add(cow);}public void addCow(Cow cow){this.cowList.add(cow);}}
测试类,Test.java
package test.question.niu;import java.util.ArrayList;import java.util.List;/** * * 一头母牛在3—10岁的时候每年可以生一头小牛,生公牛和母牛的比率是50%,在牛12岁的时候就送入屠宰场买了。 * 现在有一个农夫有1头1岁大的母牛,在母牛3岁的时候就送到附近的农场去配种,请问40年后这个农夫可能会有多少头牛, * 写出相关的代码或答题思路,最好用面向对象。 * */public class Test {public static void main(String args[]){int year = 40;Farmer farmer = new Farmer();for(int i=1;i<=year;i++){ //每一年每头牛都增大一岁for(int j=0;i!=1 && j<farmer.cowList.size();j++){farmer.cowList.get(j).setAge(farmer.cowList.get(j).getAge()+1);}int size = farmer.cowList.size(); //牛群的数量for(int j=0;j<size;j++){Cow cow = farmer.cowList.get(j);if(cow.getAge()>=3 && cow.getAge()<=10 && cow.getSex()=='F'){//满足条件才生小牛//这里每头母牛交替生公牛、母牛,得到概率50%情况下的数值//也可以用(int)Math.round(Math.random())来模拟概率事件,char childSex = cow.getChildSex()=='F'?'M':'F';cow.setChildSex(childSex); //记录最近生下的牛的性别Cow newCow = new Cow(0,childSex);//刚生下来,0岁farmer.cowList.add(newCow);}else if(cow.getAge()>11){ //大于11岁,卖掉farmer.cowList.remove(j);}}}System.out.println("40年后农夫拥有 "+farmer.cowList.size()+" 头牛");}}
- 农夫养牛de 问题
- 农夫养牛问题
- 农夫养牛问题
- 农夫养牛问题
- 经典的农夫养牛问题
- 经典的农夫养牛问题
- 经典的农夫养牛问题
- 农夫养牛
- 农夫养牛
- 农夫养牛问题的实现算法
- 农夫养牛问题,四种方法
- 斐波那契数列 农夫养牛问题(转载)
- 从农夫养牛问题推广到斐波那契数列
- 经典面试题------农夫养牛
- 经典的农夫养牛问题(常考的面试题)
- 农夫养牛问题 (将牛分为三种小牛、中牛、大牛)
- 经典的农夫养牛题目,C语言,递归实现
- 农夫过河问题实现
- Ubuntu 12.04 sudo 不输密码
- timus 1280 Topological Sorting
- 分布式数据库系统---商旅预定系统的实现(10)
- Linux网络编程系列-套接口选项控制
- C++静态成员
- 农夫养牛问题
- Java关键字final、static使用总结
- cmake2.8安装
- sublime text 2 中文输入法的安装方法 以及方法定位的安装方法
- 30个高质量的旅游网站设计
- QTextBrowser 小习
- 查看用户对象
- 文件属性和目录配置
- vsvim--今天突然发现有个vs插件vsvim,仿真linux vim的各种键盘编辑文件