问题描述
==================
农场一头小母牛,每年生头小母牛,母牛五岁产母牛,二十年后有多少牛?
代码实现
==================
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());
}
}
分享到:
相关推荐
在编程领域,"母牛生小牛问题"是一个经典的递归问题,通常用于教授和理解递归算法。这个问题描述了一头小母牛从第四年开始每年生一头小母牛的情况,询问在第N年时共有多少头母牛。下面我们将详细讨论这个问题的递归...
### C++ 母牛生小母牛问题详解 #### 一、问题描述与解析 在本问题中,我们探讨的是一个有趣的递增序列问题,即假设每头小母牛从出生后第四个年头开始每年生一头母牛,那么在第 n 年时会有多少头母牛?这个问题可以...
roblem 2 母牛生小牛问题 设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛? Input 本题有多组数据。每组数据只有一个整数N,独占一行。(1≤N≤50) Output 对每组数据,输出一个...
### C++ 母牛生小母牛问题(递归) #### 问题描述与解析 在本问题中,我们遇到了一个有趣的数学问题:假设有一头小母牛,它从出生的第四年开始,每年都会生一头小母牛。根据这一规律,我们需要计算在第 N 年时,...
若一头母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第N年时有多少头母牛?
这是一道编程题目 母牛生小牛 我编的还不错啊 呵呵
问题描述: 假设单性繁殖成立,一头母牛从出生第四年起每年生一头母牛,生出的小母牛在四岁时也将具有生殖能力。以此类推,第n年时有多少头母牛?
“农场与母牛”可能是一个关于面向对象编程(OOP)的例子。在这个场景下,我们可以创建“农场”和“母牛”类,每个类都有自己的属性(如农场的面积、母牛的数量)和方法(如母牛的喂养、产奶等行为)。OOP的基本...
有一头小母牛,从出生四年后,每年生一头小母牛,每头小母牛都遵从第一头小母牛的规律,求第N年共有多少头小母牛?
x年出生的母牛从第x+m年开始到第x+n年止(含, 1 )每年生小母牛一头,并在第x+p(n )年被淘汰。设第0年有刚出生的小母牛一头,求第k(k > 0)年存栏母牛多少头。 【输入形式】 从标准输入上顺序读入正整数m、n、p...
x年出生的母牛从第x+m年开始到第x+n年止(含, 1 )每年生小母牛一头,并在第x+p(n )年被淘汰。设第0年有刚出生的小母牛一头,求第k(k > 0)年存栏母牛多少头。 【输入形式】 从标准输入上顺序读入正整数m、n、p、k...
这个题目通常在算法竞赛、算法设计与分析或者计算机科学教育中出现,旨在训练参赛者的逻辑思维和算法实现能力。题目可能会涉及到数据结构、动态规划、贪心策略等算法知识。 母牛的故事可能是一个关于计算或优化问题...
在JavaAdvanced这个文件夹中,可能包含了实现这个问题的源代码文件,如主程序类、母牛类、繁殖模拟类等。通过分析这些源码,我们可以深入理解问题的具体实现方式和解决策略。同时,如果代码包含注释,那么它将帮助...
这个例子展示了如何用递归处理数组操作,理解和实现递归函数的关键在于确定正确的递归基(base case)和递归步骤。 2. **x的n次幂**:"x的n次幂.c"文件中,递归方法用于计算一个数的幂。基本思路是利用幂运算的性质...
在养牛业中,母牛难产是一个不容忽视的问题,它关系到母牛的健康与生存,同时对养牛业的经济效益也造成重大影响。尤其是在农户和小规模养牛场中,由于管理经验和专业技能的局限,难产问题更显突出。因此,建立一套...
从给定的文件信息来看,这是一段C语言代码,旨在解决一个经典的数学问题:母牛繁殖模型。这个问题类似于斐波那契数列,但有其特定的规则和背景。让我们详细解析这段代码以及它背后的数学逻辑。 ### 母牛繁殖模型 ...
关于母牛生小牛的客观问题,需要C++的一定素养,但是不得因为邮件而阅览
问题:母牛从3-7岁初每年会生产1头小母牛,10岁后死亡(10岁仍然存活),假设初始有1头刚出生的母牛,请问第n年有多少头母牛?(年从第一年开始计数)
“大牛4年生小牛”问题源于生物学中对牛繁殖周期的研究,但在此处我们将其转化为一个抽象的数学问题,用以演示递归的应用。问题的核心是:假设一只成年母牛(大牛)每四年可以生育一头小牛,且新生的小牛在四年后也...