看到了yiding_he 写的《母牛问题(非算法解答) 》感觉手痒痒,也写了一下,使用了一下组合模式,简单测试了一下。
java 代码
-
-
-
- package cow;
-
- import java.util.ArrayList;
- import java.util.List;
-
-
-
-
-
- public class CowImp {
- private List chirdenCow = new ArrayList();;
- public int allCows() {
- int count = 1;
- for (int i =0; i < chirdenCow.size(); i++) {
- count = count + ((CowImp)chirdenCow.get(i)).allCows();
- }
- return count;
- }
-
- public CowImp(int age) {
- if (age >= 3) {
- for (int i =3; i < age; i++) {
- chirdenCow.add(new CowImp(age - i));
- }
- }
- }
- }
测试代码,比如四年后,有几头牛。我写的代码假设了那头牛正好3岁了,这样如果测试20年后,传入的值就是23就可以,测试代码如下
java 代码
- package cow;
-
- import junit.framework.TestCase;
-
- public class CowImpTest extends TestCase {
-
- public void testAllCows() {
- CowImp cow = new CowImp(23);
- assertEquals(2745, cow.allCows());
- }
-
- }
分享到:
相关推荐
在编程领域,"母牛生小牛问题"是一个经典的递归问题,通常用于教授和理解递归算法。这个问题描述了一头小母牛从第四年开始每年生一头小母牛的情况,询问在第N年时共有多少头母牛。下面我们将详细讨论这个问题的递归...
本题通过一个简单的递归算法解决了母牛繁殖的问题。递归方法不仅简洁而且易于理解,但需要注意的是,对于较大的 `n` 值,这种方法可能会导致大量的重复计算,从而影响效率。在实际应用中,可以考虑使用动态规划等...
问题描述: 假设单性繁殖成立,一头母牛从出生第四年起每年生一头母牛,生出的小母牛在四岁时也将具有生殖能力。以此类推,第n年时有多少头母牛?
roblem 2 母牛生小牛问题 设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛? Input 本题有多组数据。每组数据只有一个整数N,独占一行。(1≤N≤50) Output 对每组数据,输出一个...
【标题】:“母牛繁殖问题”通常是指在编程或算法设计中遇到的一种特定问题,它可能涉及模拟生物繁殖过程,例如计算一定数量的母牛在若干代后可能产生的后代总数,或者解决与遗传学相关的复杂问题。这类问题往往需要...
母牛的故事可能是一个关于计算或优化问题的隐喻,例如,可能要求参赛者解决一个与牧场上的母牛相关的数学问题,比如如何安排饲料分配、繁殖计划,或者找出最高效的放牧路径等。这类问题往往需要参赛者通过编写程序来...
在IT领域,尤其是在编程和算法设计中,递归法是一种重要的解决问题的方法。递归法基于函数或过程调用自身来解决复杂问题,通常用于简化逻辑并处理分而治之的问题。本主题涵盖了5个使用C语言编写的递归法经典例题,...
在这个场景下,我们可以创建“农场”和“母牛”类,每个类都有自己的属性(如农场的面积、母牛的数量)和方法(如母牛的喂养、产奶等行为)。OOP的基本原则包括封装、继承、多态和抽象,这些概念可能都在这个例子中...
在本实训中,我们将探讨如何通过编程解决实际的算法问题。首先,我们关注的是逆序数字的实现,这是一个基础的栈应用问题。栈是一种后进先出(LIFO)的数据结构,适合处理逆序操作。我们需要编写一个函数,接受一个4...
算法在编程中起着至关重要的作用,它们是解决问题的核心工具。PHP虽然常被认为更适合Web开发,但理解并掌握算法同样重要。以下是基于提供的PHP代码片段解析的几个基础算法: 1. **菱形图案绘制**: 这个算法使用...
这是一个关于几何级数增长的问题。母牛每年增加一头小母牛,而小母牛从第四年开始也如此。可以通过递归或动态规划的方法求解,计算第20年时的母牛总数。 7. 最少钱币数问题 这是一个经典的动态规划问题,目标是...
在《算法设计综合实训》中,我们遇到了多个算法设计与实现的题目,涵盖了数据处理、时间计算、序列操作以及数学问题等多个方面。这些题目旨在锻炼和提高学生的算法思维和编程能力。 1. **逆序数字(借助栈)** 这...
这是一个关于几何增长的问题。一头母牛在第四年开始每年生一头小母牛,每头小母牛在第四年也开始如此。你需要计算在第20年时总共有多少头母牛。初始时有1头母牛,然后逐年累加。 7. 最少钱币数问题 这是一个经典...
递归算法是一种将问题分解为子问题的方法,并且这些子问题本质上是原始问题的简化版本。递归算法通常包括两个主要部分:基本情况(Base Case)和递归情况(Recursive Case)。递归算法在数据结构的学习和应用中扮演...
Java 递归算法是 Java 编程中的一种常见算法,通过自调用函数实现复杂问题的解决。下面是 Java 递归算法的相关知识点。 一、递归函数的定义 递归函数是指在函数体内直接或间接地调用自己,即函数的嵌套是函数本身...
这是一个关于几何级数增长的问题。初始有一头母牛,从第四年开始每年生一头小母牛。要计算第20年时的母牛总数。可以使用公式计算这个等比数列的和。 7. **最少钱币数问题** 这是一个经典的动态规划问题。给定各种...
问题的核心是:假设一只成年母牛(大牛)每四年可以生育一头小牛,且新生的小牛在四年后也能生育,问在N年后,共有多少头牛? #### 方法一:循环递归实现 首先,观察到代码片段中提供了两种不同的实现方式。第一种...