`
txf2004
  • 浏览: 7132799 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

兔子问题,用递归

 
阅读更多

/*
*1题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
*后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
*提示.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 递归
*作者:lihm
*2011年7月14日
*/
public class Rabbit {
public static void main(String[] args) {
int month1 = 1;
int[] num = new int[100];
num[0] = num[1] = 1;
//前两个月的兔子都为一对
for (int i = 2; i < 100;i++ )
{
num[i] = num[i-1] + num[i-2];

//System.out.println("第"+(i+1)+"月的兔子数为"+num[i]);//计算出每月的兔子数放在数组里
}
for (int j = 0; j < 10 ;j++ )//可以给j值,算出每个月兔子的总对数
{
Rabbit r = new Rabbit();
//采用递归
System.out.println(r.GetRabbitNum(j+1)+"递归"+(j+1));
//用for循环取得每月的兔子数
System.out.println("第"+(j+1)+"月的兔子数为"+num[j]);

}

}

//采用递归的方法解决
public int GetRabbitNum(int month){
if(month<3){//前两个月兔子均为一对,第三个月以后每月的兔子对数为前两月的兔子对数之和
return 1;
}else{
return GetRabbitNum(month-1)+GetRabbitNum(month-2);

}
}
}

分享到:
评论

相关推荐

    斐波那契兔子递归算法

    斐波那契兔子问题,很简单的,初学者比较适宜。从书上看到的。

    C语言-兔子繁殖问题多解

    2. **使用递归函数**:这种方法利用了斐波那契数列自身的定义,通过递归调用函数来计算第n个月的兔子对数。当n等于1或2时,直接返回1,否则返回前两个斐波那契数的和。递归方法虽然简洁,但效率低且可能导致大量的...

    Java递归算法经典实例(经典兔子问题)

    本文以经典的“兔子问题”为例,探讨如何使用Java实现递归算法。 “兔子问题”,也被称为“斐波那契兔子问题”或“莱昂纳多的兔子问题”,源于中世纪意大利数学家斐波那契提出的一个问题。假设一对兔子从出生后的第...

    递归算法专题ppt

    - **非递归算法**:通常使用迭代(如循环)的方式解决问题,避免了递归带来的潜在问题,但可能不如递归算法简洁。 **实例分析**: 例如计算阶乘 n! 和累加 1+2+3+…+n 的递归与非递归实现。递归实现通过不断地自我...

    迭代与递归的区别

    以兔子繁殖问题为例,这是典型的斐波那契数列问题,可以用迭代或递归方法来解决。使用迭代的方法,我们可以用循环结构计算每个月兔子的数量,并将结果存储在数组中。而使用递归的方法,则可以定义一个函数,该函数...

    PHP基于递归算法解决兔子生兔子问题

    兔子生兔子问题,也称为斐波那契数列问题,是一种经典的计算机科学问题,它涉及到递归算法和循环结构。在这个问题中,我们假设有一对兔子,从出生的第三个月开始每个月都会生出一对新的兔子,新生的兔子同样会在第三...

    4.5递归算法与递归程序[汇编].pdf

    5. **递归解法**:斐波那契兔子问题的递归解决方案是通过直接调用自身来计算任意月份的兔子数量。递归函数可以写为:`F(n) = 1 if n=1 or n=2, F(n) = F(n-1) + F(n-2) otherwise`。 6. **递归算法的优缺点**: - ...

    牛顿迭代算法与递归算法的概念和区别

    例如,在生物学中,有一个经典的斐波那契数列问题,用递归算法就可以很好地模拟兔子的繁殖过程。通过定义递归函数,每一级的兔子数量可以表示为前两级兔子数量的和,从而得到整个种群的增长情况。而在细胞生物学中,...

    兔子生兔子(兔子问题)

    1对儿大兔子每个月生一对小兔子,一对儿小兔子要长一个月才能成为大兔子,问第n个月一共有多少对儿兔子....

    古老递归问题(兔子版本斐波那契数列)

    这段C代码同样遵循斐波那契数列的定义,但使用了循环来避免不必要的递归调用,提高效率。 通过理解和解决这个问题,程序员可以掌握递归思想,这是编程中的一种重要思维方式,有助于解决复杂问题。此外,斐波那契...

    C语言解答经典的数学问题兔子繁衍问题即斐波那契数列问题

    通过使用迭代或者递归方法来实现斐波那契数列的计算,不仅可以加深我们对算法和程序控制流程的理解,而且还能直观地展示如何利用编程语言来解决现实世界中遇到的复杂问题。 在编程教育中,这样的练习十分常见,也是...

    兔子繁衍问题-C语言代码

    总结来说,"兔子繁衍问题-C语言代码"是一个学习C语言基础、递归函数、斐波那契数列以及算法优化的好例子。通过解决这个问题,程序员可以提升对递归理解,掌握基本的函数设计,同时了解如何处理和优化计算效率。

    迭代与递归算法

    在编程和算法设计中,迭代和递归是两种常见的...选择使用哪种方法取决于问题的性质、性能需求以及对代码可读性和维护性的考虑。在C语言和其他编程语言中,理解并灵活运用这两种方法对于成为一名优秀的程序员至关重要。

    4-5递归算法与递归程序[归纳].pdf

    斐波那契兔子问题是一个经典的递归实例,展示了如何用非递归和递归两种方法解决问题。非递归方法通过循环迭代计算兔子的数量,而递归方法则是通过定义兔子数量与前两个月兔子数量的关系来求解。 递归算法设计的关键...

    斐波那契的兔子问题

    斐波那契的兔子问题,该问题运用了递归,但是不是一味的直接递归,而是采用了记忆递归,这样不会超时

    递归算法和递归程序PPT学习教案.pptx

    综上所述,递归算法和递归程序是计算机科学中重要的概念,它们通过自我调用来解决复杂问题,但在使用时需要谨慎,以避免不必要的性能损耗。理解并熟练掌握递归可以帮助程序员更好地解决各种结构化问题,特别是在数据...

    详解python使用递归、尾递归、循环三种方式实现斐波那契数列

    在最开始的时候所有的斐波那契代码都是使用递归的方式来写的,递归有很多的...尾递归就是把当前的运算结果(或路径)放在参数里传给下层函数,深层函数所面对的不是越来越简单的问题,而是越来越复杂的问题,因为参数里

    Java 小程序:古典兔子问题、猴子吃桃问题等等

    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:1.递归(吗);2.不会(3);3.想不到;4.谷歌;5.一个一个...

    4.5递归算法与递归程序[定义].pdf

    难点在于构建递归思维,判断问题是否适合使用递归解决,以及准确地编写递归代码。 **实例:斐波那契数列**斐波那契数列是递归的一个经典示例,由意大利数学家斐波那契提出。在这个问题中,每对兔子每月会生出一对新...

    列奥纳多.斐波那契的兔子问题解法

    斐波那契曾经在其著作《算法之书》中提出了“著名的兔子问题”: 有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生 一对兔子,假如兔子都不死,问每个月兔子的总对数为多少?

Global site tag (gtag.js) - Google Analytics