递归二:求老鼠生孩子问题

有一对老鼠,它每一个月产一对小老鼠,小老鼠在3个月后成年,又将生产小老鼠。 问3年后,总共会有多少只老鼠,不计老鼠死亡

第1个月后情况:

有成年鼠:1对                    新生的老鼠:1对

有一个月大的老鼠:0对            二个月大的老鼠:0对

第1月后共有老鼠:2对

第2个月后情况:

有成年鼠:1对                    新生的老鼠:1对

有一个月大的老鼠:1对            二个月大的老鼠:0对

第2月后共有老鼠:3对

第3个月后情况:

有成年鼠:1对                    新生的老鼠:1对

有一个月大的老鼠:1对            二个月大的老鼠:1对

第3月后共有老鼠:4对

第4个月后情况:

有成年鼠:2对                    新生的老鼠:2对

有一个月大的老鼠:1对            二个月大的老鼠:1对

第4月后共有老鼠:6对

第5个月后情况:

有成年鼠:3对                    新生的老鼠:3对

有一个月大的老鼠:2对            二个月大的老鼠:1对

第5月后共有老鼠:9对

第6个月后情况:

有成年鼠:4对                    新生的老鼠:4对

有一个月大的老鼠:3对            二个月大的老鼠:2对

第6月后共有老鼠:13对

第7个月后情况:

有成年鼠:6对                    新生的老鼠:6对

有一个月大的老鼠:4对            二个月大的老鼠:3对

第7月后共有老鼠:19对

第8个月后情况:

有成年鼠:9对                    新生的老鼠:9对

有一个月大的老鼠:6对            二个月大的老鼠:4对

第8月后共有老鼠:28对

第9个月后情况:

有成年鼠:13对                   新生的老鼠:13对

有一个月大的老鼠:9对            二个月大的老鼠:6对

第9月后共有老鼠:41对

第10个月后情况:

有成年鼠:19对                   新生的老鼠:19对

有一个月大的老鼠:13对           二个月大的老鼠:9对

第10月后共有老鼠:60对

第11个月后情况:

有成年鼠:28对                   新生的老鼠:28对

有一个月大的老鼠:19对           二个月大的老鼠:13对

第11月后共有老鼠:88对

第12个月后情况:

有成年鼠:41对                   新生的老鼠:41对

有一个月大的老鼠:28对           二个月大的老鼠:19对

第12月后共有老鼠:129对

第13个月后情况:

有成年鼠:60对                   新生的老鼠:60对

有一个月大的老鼠:41对           二个月大的老鼠:28对

第13月后共有老鼠:189对

第14个月后情况:

有成年鼠:88对                   新生的老鼠:88对

有一个月大的老鼠:60对           二个月大的老鼠:41对

第14月后共有老鼠:277对

第15个月后情况:

有成年鼠:129对                  新生的老鼠:129对

有一个月大的老鼠:88对           二个月大的老鼠:60对

第15月后共有老鼠:406对

第16个月后情况:

有成年鼠:189对                  新生的老鼠:189对

有一个月大的老鼠:129对          二个月大的老鼠:88对

第16月后共有老鼠:595对

第17个月后情况:

有成年鼠:277对                  新生的老鼠:277对

有一个月大的老鼠:189对          二个月大的老鼠:129对

第17月后共有老鼠:872对

第18个月后情况:

有成年鼠:406对                  新生的老鼠:406对

有一个月大的老鼠:277对          二个月大的老鼠:189对

第18月后共有老鼠:1278对

第19个月后情况:

有成年鼠:595对                  新生的老鼠:595对

有一个月大的老鼠:406对          二个月大的老鼠:277对

第19月后共有老鼠:1873对

第20个月后情况:

有成年鼠:872对                  新生的老鼠:872对

有一个月大的老鼠:595对          二个月大的老鼠:406对

第20月后共有老鼠:2745对

第21个月后情况:

有成年鼠:1278对                 新生的老鼠:1278对

有一个月大的老鼠:872对          二个月大的老鼠:595对

第21月后共有老鼠:4023对

第22个月后情况:

有成年鼠:1873对                 新生的老鼠:1873对

有一个月大的老鼠:1278对         二个月大的老鼠:872对

第22月后共有老鼠:5896对

第23个月后情况:

有成年鼠:2745对                 新生的老鼠:2745对

有一个月大的老鼠:1873对         二个月大的老鼠:1278对

第23月后共有老鼠:8641对

第24个月后情况:

有成年鼠:4023对                 新生的老鼠:4023对

有一个月大的老鼠:2745对         二个月大的老鼠:1873对

第24月后共有老鼠:12664对

第25个月后情况:

有成年鼠:5896对                 新生的老鼠:5896对

有一个月大的老鼠:4023对         二个月大的老鼠:2745对

第25月后共有老鼠:18560对

第26个月后情况:

有成年鼠:8641对                 新生的老鼠:8641对

有一个月大的老鼠:5896对         二个月大的老鼠:4023对

第26月后共有老鼠:27201对

第27个月后情况:

有成年鼠:12664对                        新生的老鼠:12664对

有一个月大的老鼠:8641对         二个月大的老鼠:5896对

第27月后共有老鼠:39865对

第28个月后情况:

有成年鼠:18560对                        新生的老鼠:18560对

有一个月大的老鼠:12664对                二个月大的老鼠:8641对

第28月后共有老鼠:58425对

第29个月后情况:

有成年鼠:27201对                        新生的老鼠:27201对

有一个月大的老鼠:18560对                二个月大的老鼠:12664对

第29月后共有老鼠:85626对

第30个月后情况:

有成年鼠:39865对                        新生的老鼠:39865对

有一个月大的老鼠:27201对                二个月大的老鼠:18560对

第30月后共有老鼠:125491对

第31个月后情况:

有成年鼠:58425对                        新生的老鼠:58425对

有一个月大的老鼠:39865对                二个月大的老鼠:27201对

第31月后共有老鼠:183916对

第32个月后情况:

有成年鼠:85626对                        新生的老鼠:85626对

有一个月大的老鼠:58425对                二个月大的老鼠:39865对

第32月后共有老鼠:269542对

第33个月后情况:

有成年鼠:125491对                       新生的老鼠:125491对

有一个月大的老鼠:85626对                二个月大的老鼠:58425对

第33月后共有老鼠:395033对

第34个月后情况:

有成年鼠:183916对                       新生的老鼠:183916对

有一个月大的老鼠:125491对               二个月大的老鼠:85626对

第34月后共有老鼠:578949对

第35个月后情况:

有成年鼠:269542对                       新生的老鼠:269542对

有一个月大的老鼠:183916对               二个月大的老鼠:125491对

第35月后共有老鼠:848491对

第36个月后情况:

有成年鼠:395033对                       新生的老鼠:395033对

有一个月大的老鼠:269542对               二个月大的老鼠:183916对

第36月后共有老鼠:1243524对

分析:这个问题用循环做可能时间会用得久一点,但是也很好做,不过用递归做明显会更加简单,只要找到后面一个数跟前面数之间的联系就行了,这个问题其实最难之处就是找规律了,只要规律找到了写代码就只是顺手拈来的事情了。

public class Test {

private static int sum;

public static void main(String[] args) {

System.out.println(fibonacci(36));

}

private static int fibonacci(int i) {

if(i==0)

sum = 2;

if(i==1)

sum = 2;

if(i==2)

sum = 3;

if(i==3)

sum = 4;

if(i==4)

sum = 6;

if(i>=5)

sum = fibonacci(i-2)+fibonacci(i-3)+fibonacci(i-4);

return sum;

}

}

时间: 2024-10-25 05:55:35

递归二:求老鼠生孩子问题的相关文章

生孩子到底有多痛?

第二行包含n个数表示:概率1,,n.每个i都给出6个小数位. 输出描述: 对于每个测试用例输出一个数:使得0和1的概率相等的子集合数量.混淆的文章其实网上也很多,介绍的都很好,但是关于多个module的混淆规则就不是这么详细,有的也是错误的,经过了2天的多次实践以及查阅资料(多次打包和反本文主要实现利用NB-IoT技术实现基于UDP协议的数据传输. 硬件平台:BC95-B5 ,在淘宝上购买即可,可以直接购买模块,然后自己利用USB转串口接到PC上.也 由于工作原因需要写一个?获取Excel数据?

【第一章】生孩子的男人

秃鹰能在水里游?死的秃鹰才能在水里游. 金鱼能在天上飞?死的金鱼才能在天上飞. 男人能生孩子?男人当然不能生孩子,活的不能,死的更不能. 无论男人健康.强壮.俊美.妖娆,他都不能. 无论男人高的.矮的.胖的.瘦的,他都不能. 如果有人告诉你一个男人会生孩子,那你一定要把他当成傻子,因为他一定在把你当成傻子. 因为一个男人绝不会生孩子. 生孩子从来都是女人的伟大权利. 女人不一定能生孩子,但是生孩子的一定是女人. 男人不会生孩子就和一加一等于二一样简单又正确. 可是张瞎子说白水桥有一个生孩子的男人

用递归实现求一个迷宫是否有通路

今天终于把昨天下午没写出来的迷宫求是否有通路的cpp写出来了 使用递归实现的,不过算法的质量不怎么样,使用穷举法实现的. 在网上搜了一下,发现还有很多的更优的算法,哈哈,不过怎么说都是自己一个个地代码敲出来的. 特点是发现在linux下面调试真的有时候自己会崩溃,还好最终还是搞出来了. 哈哈,发上来给类似我这种的算法新手来一起分享一下: 路径就记录在栈里面,需要得出具体路径的可以小改一下就行了. findRoad.cpp //迷宫求解问题思路 //1.用一个矩阵来表示迷宫,即n*m数组 //用穷

非递归版求幂函数

#include<stdio.h> int MinSubsequenceSum(const int A[],int n) { int i,sum,MinSum; sum=MinSum=0; for(i=0;i<n;i++) { sum+=A[i]; if(sum<MinSum) MinSum=sum; if(sum>0) sum=0; } return MinSum; } void main() { int arr[10]={3,4,-2,5,-4,6,-2,8,-9,-23

从二叉树改链表引发的递归二三想

递归其实就是寻找通项公式,但是通项公式可以有轻微的区别. 比如二叉树改链表(只调整箭头方向)这件事情,用以下两种方法都可以实现. 方法1: 从根开始 (1)调整左子树 (2)调整右子树  (3)(如何调整)左子树的最大值连接 自身,右子树的最小值连接自身 方法2:从根开始  (1)返回左子树最大值连接自身 (2)返回右子树最小值连接自身 (3)(如何返回值)如果是来自左子树,返回最大值,如果是来自右子树,返回最小值 (4)  递归调整左右子树 进而可以简化为 : (1)调整左子树,并返回最大值连

分治递归:求数组元素的最大值,最小值

//分治递归,求数组元素的最大值,最小值 /** * 保存产生的最大值,最小值 * @author Administrator * */ public class Values { private int max; private int min; public Values(int max,int min){ this.max=max; this.min=min; } public int getMax() { return max; } public void setMax(int max)

我们为什么要去美国生孩子

前阵子柴静的<穹顶之下>在朋友圈各种刷屏,其实不仅仅是雾霾问题,重金属污染,水污染,食品安全等等拿出来深究的话又将各种刷屏.不过现在雾霾问题已经解决了,因为已经搜不到任何关于柴静的视频了. 五毛经常拿中国当下的污染情况和***战争时期的英国比较,这是非常逗逼的.英国开启工业革命之先河,之前并没有先例.没有现代医学,没有PM2.5监测,走别人两百年前的老路,居然还能掉进同样的坑里,想一想我也是醉了. 很多人都经历过高考吧?当初我们在高中的时候千军万马去挤独木桥的场景我是一辈子都难忘记.考得好欢天

二叉树非递归先中后序遍历 及 非递归交换二叉树两个孩子的位置

看到一个非递归交换一个二叉树的左右孩子的位置,于是想实现之,才发现非递归的先中后序遍历都忘记了……于是杂七杂八的写了一些,抄抄资料就实现了,然后实现非递归交换两个孩子的位置还是相当容易的.先直接上代码吧,其实这东西还是得自己写写过一遍的,印象才会更加深刻: #include <iostream> #include <fstream> #include <string> #include <stack> using std::cout; using std::

临沂生孩子需要多少钱

临沂和美家妇产医院 ★★临沂和美家妇产医院★★,0539 - 5253333临沂唯一高端妇产医院.从准备怀孕到生下宝宝都会有一套周全而又不可少的计划,同时也保障了病客的隐私权.马上预约专家号 ?用技术引领医疗水平的进步,守护民生福祉.为了能够用更好的医疗技术服务广大女性,面对现实,百姓看病找专家难一直是民生工程中所亟待解决的问题.临沂和美家妇产医院汇聚了一批来自山东省各大三甲医院的资深妇产专家.同时,提供更好的医疗服务,导丝.不孕不育诊疗系统.美国乳腺钼靶机,生活压力也增加不少,构建起完善的医疗