农场有头大母牛,每年生头小母牛,小母牛五年后生小母牛,问20年后农场一共有多少头牛?(用面向对象的思想)
2013-10-10 22:03
204 查看
笔试题
代码如下:
代码如下:
package cn.edu.test; import java.util.ArrayList; import java.util.List; /** * 农场有头大母牛,每年生头小母牛,小母牛五年后生小母牛,问20年后农场一共有多少头牛?(用面向对象的思想) * 采用面向对象的思想:农场是一个对象,农场这个对象里存放着母牛,该对象应该提供一个方法用于统计N年后农场的母牛的总数。 * 母牛也是一个对象,母牛这个对象里有一个年龄属性,该对象有生长的方法以及生育的方法。 * * @author YCY * */ class Cow { private int age; public Cow(int age) { this.age = age; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } /* * 每年长大一岁 */ public void grow() { this.age++; } /* * 母牛生小牛,如果年龄达到5岁,则可以每年都生一头小母牛,反之,则不能生育,返回null */ public Cow generation() { if (this.age >= 5) return new Cow(0); return null; } } class Farm { // cows集合存放所有母牛对象 private List<Cow> cows = new ArrayList<Cow>(); public List<Cow> getCows() { return cows; } public void setCows(List<Cow> cows) { this.cows = cows; } /* * 第N年后农场的牛的数量 */ public int getCowNum(int year) { // children集合存放每年所有母牛生的小母牛对象 List<Cow> children = new ArrayList<Cow>(); for (int i = 0; i < year; i++) { for (Cow c : cows) { c.grow(); Cow cc = c.generation(); if (cc != null) {// 如果该母牛可以产仔了,则将其产的小母牛加入children集合中 children.add(cc); } } cows.addAll(children);// 将整个小母牛集合加入所有母牛的集合中 children.clear();// 每年过后将children集合清空 } return cows.size(); } } public class MyTest { public static void main(String[] args) { Farm farm = new Farm(); // 首先创建一个已经可以产仔的母牛对象 Cow c = new Cow(5); // 将这个母牛添加到农场中 farm.getCows().add(c); int num = farm.getCowNum(20);// 20年后农场的牛的总数 System.out.println(num);// 结果:431 } }
相关文章推荐
- 农场有头大母牛,每年生头小母牛,小母牛五年后生小母牛,问20年后农场一共有多少头牛?(用面向对象的思想)
- 农场有头大母牛,每年生一小母牛,母牛5岁生母牛,20年后多少牛
- 农场一头小母牛,每年生头小母牛,母牛5岁产母牛,20年上多少牛?--java面向对象方式实现
- 一个牧场目前一共有20头刚出生的羊,母羊、公羊各一半。假如母羊5岁时后每年生一胎(母羊,公羊各一半)。羊活到10岁后死亡。请问20年后这个牧场有多少只羊? 请用C#写出算法。
- 一个农场有头母牛,现在母牛才一岁,要到四岁才能生小牛,四岁之后,每年生一头小牛,n年后有多少头小牛
- [转]C#算法 有一个农场有一头成年母牛,每三个月后一头小牛,小牛一年后长大,长大后每三个月又可以生一头小牛,如此循环,问n年后农场一共有多少牛?
- 若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年有多少头母牛?
- 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
- 牛年求牛:有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛。
- 面试题: 20年后农场中有多少头牛?
- 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n
- 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
- 一只刚出生的小牛,4年后生一只小牛,以后每年生一只。现有一只刚出生的小牛,问20年后共有牛多少只?
- 面向对象设计题:“农场一头小母牛,每年生头小母牛。。。”的一种实现
- 母牛生产问题;第一年有一头小母牛,3年之后每年都生一头小母牛,假设都不死,第n年共有多少母牛,输出n从1到20的母牛数目
- 若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年时有多少头母牛?
- 一个刚出生的奶牛,4年生一只,以后每年生一只,现在有一只刚出生的奶牛,问20年以后一共多少只奶牛?
- 有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛
- 有一头小母牛。从第四年起每年生一头小母牛。生的小母牛也是从第四年起每年生一头小母牛。如此循环。编程求N年后有多少头母牛。。。。。。。
- 一个刚出生的奶牛,4年生一只,以后每年生一只,现在有一只刚出生的奶牛,问20年以后一共多少只奶牛?