`
tanliwei
  • 浏览: 49426 次
  • 性别: Icon_minigender_1
  • 来自: 中国
社区版块
存档分类
最新评论

母牛生母牛 用面向对象的思想实现这个算法

    博客分类:
  • java
阅读更多
问题描述
==================
农场一头小母牛,每年生头小母牛,母牛五岁产母牛,二十年后有多少牛?

代码实现
==================
package com.cow.entity;
/**
 * 母牛类
 * @author Tanliwei
 */
public class Cow {
	private int age;
	private boolean firtility;
	public Cow() {
	}
	public Cow(int age, boolean firtility) {
		this.age = age;
		this.firtility = firtility;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
		// 大于五岁的牛可以进行生育
		if (!firtility && age >= 5) {
			this.setFirtility(true);
		}
	}
	public boolean isFirtility() {
		return firtility;
	}
	public void setFirtility(boolean firtility) {
		this.firtility = firtility;
	}
}

package com.cow;
import java.util.ArrayList;
import java.util.List;
import com.cow.entity.Cow;
/**
 * 生产类
 * @author Tanliwei
 */
public class Producer {	
	private int years = 20; // 生产年限	
	private int amount; //牛的数量	
	/**
	 * 母牛进行繁殖
	 */
	public List produce(){
		List<Cow> cows = new ArrayList<Cow>();
		//初始化 农场有一头可以生育的母牛
		cows.add(new Cow(5,true));
		amount += 1;
		for(int i = 0; i < years; ++i){
			pastAYear(cows);
		}
		return cows;
	}	
	/**
	 * 一年以后的母牛群
	 * @param cows
	 * @return
	 */
	public List<Cow> pastAYear(List<Cow> cows){
		Cow calf;	//新生小牛
		Cow term;	//一群母牛中的一只
		int currentAmount = cows.size();	//当前母牛的数量
		for(int i = 0; i < currentAmount; ++i){	//母牛成长、生育,不包括新生的小牛
			term = cows.get(i);
			//这头母牛可以生育
			if(term.isFirtility()){
				calf = new Cow(1,false);
				cows.add(calf);
				amount += 1;
			}
			//母牛的年龄加一
			term.setAge(term.getAge()+1);			
		}
		return cows;
	}
	public int getAmount() {
		return amount;
	}
	public void setAmount(int amount) {
		this.amount = amount;
	}
	public int getYears() {
		return years;
	}
	public void setYears(int years) {
		this.years = years;
	}
}

package com.cow;
import java.util.List;
import com.cow.entity.Cow;
/**
 * @author Tanliwei 
 */
public class TestClass {
	public static void main(String[] args) {
		Producer producer = new Producer();
		List<Cow> cows = producer.produce();			
		System.out.println("母牛总数:" + producer.getAmount());		
	}
}
0
1
分享到:
评论

相关推荐

    c 源码 母牛生小牛问题 递归实现

    在编程领域,"母牛生小牛问题"是一个经典的递归问题,通常用于教授和理解递归算法。这个问题描述了一头小母牛从第四年开始每年生一头小母牛的情况,询问在第N年时共有多少头母牛。下面我们将详细讨论这个问题的递归...

    c++:母牛生小母牛问题 (类方法)

    ### C++ 母牛生小母牛问题详解 #### 一、问题描述与解析 在本问题中,我们探讨的是一个有趣的递增序列问题,即假设每头小母牛从出生后第四个年头开始每年生一头母牛,那么在第 n 年时会有多少头母牛?这个问题可以...

    母牛生小牛的C语言算法

    roblem 2 母牛生小牛问题 设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛? Input 本题有多组数据。每组数据只有一个整数N,独占一行。(1≤N≤50) Output 对每组数据,输出一个...

    c++:母牛生小母牛问题(递归)

    ### C++ 母牛生小母牛问题(递归) #### 问题描述与解析 在本问题中,我们遇到了一个有趣的数学问题:假设有一头小母牛,它从出生的第四年开始,每年都会生一头小母牛。根据这一规律,我们需要计算在第 N 年时,...

    编程求解母牛问题。若一头母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第N年时有多少头母牛?

    若一头母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第N年时有多少头母牛?

    母牛生小牛问题

    这是一道编程题目 母牛生小牛 我编的还不错啊 呵呵

    c++中有关母牛问题的程序代码

    问题描述: 假设单性繁殖成立,一头母牛从出生第四年起每年生一头母牛,生出的小母牛在四岁时也将具有生殖能力。以此类推,第n年时有多少头母牛?

    农场与母牛

    “农场与母牛”可能是一个关于面向对象编程(OOP)的例子。在这个场景下,我们可以创建“农场”和“母牛”类,每个类都有自己的属性(如农场的面积、母牛的数量)和方法(如母牛的喂养、产奶等行为)。OOP的基本...

    小母牛问题

    有一头小母牛,从出生四年后,每年生一头小母牛,每头小母牛都遵从第一头小母牛的规律,求第N年共有多少头小母牛?

    C语言关于母牛问题的计算代码

    x年出生的母牛从第x+m年开始到第x+n年止(含, 1 )每年生小母牛一头,并在第x+p(n )年被淘汰。设第0年有刚出生的小母牛一头,求第k(k &gt; 0)年存栏母牛多少头。 【输入形式】 从标准输入上顺序读入正整数m、n、p...

    母牛问题

    x年出生的母牛从第x+m年开始到第x+n年止(含, 1 )每年生小母牛一头,并在第x+p(n )年被淘汰。设第0年有刚出生的小母牛一头,求第k(k &gt; 0)年存栏母牛多少头。 【输入形式】 从标准输入上顺序读入正整数m、n、p、k...

    算法-母牛的故事(HDU-2018)(包含源程序).rar

    这个题目通常在算法竞赛、算法设计与分析或者计算机科学教育中出现,旨在训练参赛者的逻辑思维和算法实现能力。题目可能会涉及到数据结构、动态规划、贪心策略等算法知识。 母牛的故事可能是一个关于计算或优化问题...

    母牛繁殖问题

    在JavaAdvanced这个文件夹中,可能包含了实现这个问题的源代码文件,如主程序类、母牛类、繁殖模拟类等。通过分析这些源码,我们可以深入理解问题的具体实现方式和解决策略。同时,如果代码包含注释,那么它将帮助...

    算法设计与优化第六章递归法经典例题(如最大值,母牛繁殖,x的n次幂等共5个)

    这个例子展示了如何用递归处理数组操作,理解和实现递归函数的关键在于确定正确的递归基(base case)和递归步骤。 2. **x的n次幂**:"x的n次幂.c"文件中,递归方法用于计算一个数的幂。基本思路是利用幂运算的性质...

    母牛难产预防和救助原则.doc

    7. **综合判断难产**:考虑产道、产力和胎儿三个因素,如母牛努责无效、产程延长、胎儿位置异常等,都可能是难产迹象。 8. **了解病史**:包括母牛的预产期、胎次、既往难产史,以及助产情况,这些信息对诊断和处理...

    C语言母球生小牛

    从给定的文件信息来看,这是一段C语言代码,旨在解决一个经典的数学问题:母牛繁殖模型。这个问题类似于斐波那契数列,但有其特定的规则和背景。让我们详细解析这段代码以及它背后的数学逻辑。 ### 母牛繁殖模型 ...

    母牛问题关于C++

    关于母牛生小牛的客观问题,需要C++的一定素养,但是不得因为邮件而阅览

    第n年有多少头母牛的python代码方案

    问题:母牛从3-7岁初每年会生产1头小母牛,10岁后死亡(10岁仍然存活),假设初始有1头刚出生的母牛,请问第n年有多少头母牛?(年从第一年开始计数)

    递归大牛4年生小牛问题

    “大牛4年生小牛”问题源于生物学中对牛繁殖周期的研究,但在此处我们将其转化为一个抽象的数学问题,用以演示递归的应用。问题的核心是:假设一只成年母牛(大牛)每四年可以生育一头小牛,且新生的小牛在四年后也...

Global site tag (gtag.js) - Google Analytics