当前位置: 首页 > 编程笔记 >

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

龚宏壮
2023-03-14
本文向大家介绍Java递归算法经典实例(经典兔子问题),包括了Java递归算法经典实例(经典兔子问题)的使用技巧和注意事项,需要的朋友参考一下

题目:古典问题:3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

分析:首先我们要明白题目的意思指的是每个月的兔子总对数;假设将兔子分为小中大三种,兔子从出生后三个月后每个月就会生出一对兔子,

那么我们假定第一个月的兔子为小兔子,第二个月为中兔子,第三个月之后就为大兔子,那么第一个月分别有1、0、0,第二个月分别为0、1、0,

第三个月分别为1、0、1,第四个月分别为,1、1、1,第五个月分别为2、1、2,第六个月分别为3、2、3,第七个月分别为5、3、5……

兔子总数分别为:1、1、2、3、5、8、13……

于是得出了一个规律,从第三个月起,后面的兔子总数都等于前面两个月的兔子总数之和,即为斐波那契数列。

Java代码

很经典的一个递归算法的例子。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持小牛知识库!

 类似资料:
  • 本文向大家介绍C#用递归算法解决经典背包问题,包括了C#用递归算法解决经典背包问题的使用技巧和注意事项,需要的朋友参考一下 1.引子   我们人类是一种贪婪的动物,如果给您一个容量一定的背包和一些大小不一的物品,裝到背包里面的物品就归您,遇到这种好事大家一定不会错过,用力塞不一定是最好的办法,用脑子才行,下面就教您如何解决这样的问题,以获得更多的奖品。 2.应用场景   在一个物品向量中找到一个子

  • 本文向大家介绍PHP经典算法集锦【经典收藏】,包括了PHP经典算法集锦【经典收藏】的使用技巧和注意事项,需要的朋友参考一下 本文实例总结了PHP经典算法。分享给大家供大家参考,具体如下: 1、首先来画个菱形玩玩,很多人学C时在书上都画过,咱们用PHP画下,画了一半。 思路:多少行for一次,然后在里面空格和星号for一次。 2、冒泡排序,C里基础算法,从小到大对一组数排序。 思路:这题从小到大,第

  • 本文向大家介绍php经典趣味算法实例代码,包括了php经典趣味算法实例代码的使用技巧和注意事项,需要的朋友参考一下 1、一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。 2、有一母牛,到

  • 本文向大家介绍javascript常用经典算法实例详解,包括了javascript常用经典算法实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript常用算法。分享给大家供大家参考,具体如下: 入门级算法-线性查找-时间复杂度O(n)--相当于算法界中的HelloWorld 二分查找(又称折半查找) - 适用于已排好序的线性结构 - 时间复杂度O(logN) 冒泡排序

  • 冒泡排序 令 n = array.length;共n次排序;每次排序比较相邻的两个的大小,并确保大的在右边。第一遍排序后,可以确保最大的在第【n】位,第二遍排序可以确保剩下的n-1个元素中最大(整体中的第二大)的在第【n - 1】位;n次排序后,第n大的在n - n位,也就是最小的排到了最左边。 function bubbleSort(ary) { var i = ary.

  • 本文向大家介绍Java经典排序算法之归并排序详解,包括了Java经典排序算法之归并排序详解的使用技巧和注意事项,需要的朋友参考一下 一、归并排序 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归