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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归二:求老鼠生孩子问题相关的知识,希望对你有一定的参考价值。

有一对老鼠,它每一个月产一对小老鼠,小老鼠在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;
}
}

以上是关于递归二:求老鼠生孩子问题的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript - 代码片段,Snippets,Gist

求数据结构 用键盘输入一个字符串,按照满二叉树的特点生成一颗二叉树。要求用递归方法生成二叉树

算法:老鼠走迷宫问题

算法与数据结构二叉树的顺序存储代码

二叉树的非递归遍历

使用递归法建立二叉树