`
sinokaka
  • 浏览: 326171 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自己关于母牛问题的算法

    博客分类:
  • java
阅读更多

看到了yiding_he 写的《母牛问题(非算法解答) 》感觉手痒痒,也写了一下,使用了一下组合模式,简单测试了一下。

java 代码

  1. /**  
  2.  *  
  3.  */  
  4. package cow;   
  5.   
  6. import java.util.ArrayList;   
  7. import java.util.List;   
  8.   
  9. /**  
  10.  * 牛产仔问题。有一头母牛,它每年年初要生一头小母牛;每头小母牛从第四个年头起,  
  11.  * 每年年初也要生一头小母牛。按此规律,若无牛死亡,第20年头上共有多少头母牛?  
  12.  */  
  13. public class CowImp {   
  14.     private List chirdenCow = new ArrayList();;   
  15.     public int allCows() {   
  16.         int count = 1;   
  17.         for (int i =0; i < chirdenCow.size(); i++) {   
  18.              count = count + ((CowImp)chirdenCow.get(i)).allCows();   
  19.         }   
  20.         return count;   
  21.     }   
  22.   
  23.     public CowImp(int age) {   
  24.         if (age >=  3) {   
  25.             for (int i =3; i < age; i++) {   
  26.                 chirdenCow.add(new CowImp(age - i));   
  27.             }   
  28.         }   
  29.     }   
  30. }   

测试代码,比如四年后,有几头牛。我写的代码假设了那头牛正好3岁了,这样如果测试20年后,传入的值就是23就可以,测试代码如下

 

java 代码
  1. package cow;   
  2.   
  3. import junit.framework.TestCase;   
  4.   
  5. public class CowImpTest extends TestCase {   
  6.   
  7.     public void testAllCows() {   
  8.         CowImp cow = new CowImp(23);   
  9.         assertEquals(2745, cow.allCows());   
  10.     }   
  11.   
  12. }   
分享到:
评论

相关推荐

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

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

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

    本题通过一个简单的递归算法解决了母牛繁殖的问题。递归方法不仅简洁而且易于理解,但需要注意的是,对于较大的 `n` 值,这种方法可能会导致大量的重复计算,从而影响效率。在实际应用中,可以考虑使用动态规划等...

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

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

    母牛生小牛的C语言算法

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

    母牛繁殖问题

    【标题】:“母牛繁殖问题”通常是指在编程或算法设计中遇到的一种特定问题,它可能涉及模拟生物繁殖过程,例如计算一定数量的母牛在若干代后可能产生的后代总数,或者解决与遗传学相关的复杂问题。这类问题往往需要...

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

    母牛的故事可能是一个关于计算或优化问题的隐喻,例如,可能要求参赛者解决一个与牧场上的母牛相关的数学问题,比如如何安排饲料分配、繁殖计划,或者找出最高效的放牧路径等。这类问题往往需要参赛者通过编写程序来...

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

    在IT领域,尤其是在编程和算法设计中,递归法是一种重要的解决问题的方法。递归法基于函数或过程调用自身来解决复杂问题,通常用于简化逻辑并处理分而治之的问题。本主题涵盖了5个使用C语言编写的递归法经典例题,...

    农场与母牛

    在这个场景下,我们可以创建“农场”和“母牛”类,每个类都有自己的属性(如农场的面积、母牛的数量)和方法(如母牛的喂养、产奶等行为)。OOP的基本原则包括封装、继承、多态和抽象,这些概念可能都在这个例子中...

    《算法设计综合实训》题目.docx

    在本实训中,我们将探讨如何通过编程解决实际的算法问题。首先,我们关注的是逆序数字的实现,这是一个基础的栈应用问题。栈是一种后进先出(LIFO)的数据结构,适合处理逆序操作。我们需要编写一个函数,接受一个4...

    php常用算法(doc)

    算法在编程中起着至关重要的作用,它们是解决问题的核心工具。PHP虽然常被认为更适合Web开发,但理解并掌握算法同样重要。以下是基于提供的PHP代码片段解析的几个基础算法: 1. **菱形图案绘制**: 这个算法使用...

    算法设计综合实训题目.docx

    这是一个关于几何级数增长的问题。母牛每年增加一头小母牛,而小母牛从第四年开始也如此。可以通过递归或动态规划的方法求解,计算第20年时的母牛总数。 7. 最少钱币数问题 这是一个经典的动态规划问题,目标是...

    《算法设计综合实训》题目.pdf

    在《算法设计综合实训》中,我们遇到了多个算法设计与实现的题目,涵盖了数据处理、时间计算、序列操作以及数学问题等多个方面。这些题目旨在锻炼和提高学生的算法思维和编程能力。 1. **逆序数字(借助栈)** 这...

    算法设计综合实训题目.pdf

    这是一个关于几何增长的问题。一头母牛在第四年开始每年生一头小母牛,每头小母牛在第四年也开始如此。你需要计算在第20年时总共有多少头母牛。初始时有1头母牛,然后逐年累加。 7. 最少钱币数问题 这是一个经典...

    java递归算法浅谈

    Java 递归算法是 Java 编程中的一种常见算法,通过自调用函数实现复杂问题的解决。下面是 Java 递归算法的相关知识点。 一、递归函数的定义 递归函数是指在函数体内直接或间接地调用自己,即函数的嵌套是函数本身...

    《算法设计综合实训》题目解析.pdf

    这是一个关于几何级数增长的问题。初始有一头母牛,从第四年开始每年生一头小母牛。要计算第20年时的母牛总数。可以使用公式计算这个等比数列的和。 7. **最少钱币数问题** 这是一个经典的动态规划问题。给定各种...

    递归大牛4年生小牛问题

    问题的核心是:假设一只成年母牛(大牛)每四年可以生育一头小牛,且新生的小牛在四年后也能生育,问在N年后,共有多少头牛? #### 方法一:循环递归实现 首先,观察到代码片段中提供了两种不同的实现方式。第一种...

Global site tag (gtag.js) - Google Analytics