微信扫一扫打赏支持

php实现 统计每个月兔子的数量

php实现 统计每个月兔子的数量

一、总结

一句话总结:想清楚再动,怎么可能出错嘛。

 

 

二、统计每个月兔子的数量

题目描述

有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?

 

    /**
     * 统计出兔子总数。
     * 
     * @param monthCount 第几个月
     * @return 兔子总数
     */
    public static int getTotalCount(int monthCount)
    {
        return 0;
    }

 

 

输入描述:

输入int型表示month

输出描述:

输出兔子总数int型

示例1

输入

复制
9

输出

复制
34

代码:

 1 <?php
 2 //1 2 3 4
 3 //1 1 2 3
 4 //每个月的兔子数量为f(n),兔子数量为本月成熟的兔子+本月新出生的兔子
 5 //本月成熟的兔子为两个月前的所有兔子
 6 //本月新出生的兔子,为
 7 //每个月的兔子有三种:可以下崽崽的兔子,不可以下崽崽的兔子,和刚出生的兔子   题中是兔子过两个月成熟
 8 //刚出生的兔子:等于两个月前的所有兔子
 9 //不可以下崽的兔子:等于前一个月新生兔子--等于前三个月的所有兔子
10 //可以下崽崽的兔子:等于刚出生的兔子--等于两个月前的所有兔子
11 //f(n)=2f(n-2)+f(n-3)
12 
13 while($n=trim(fgets(STDIN))){
14     $arr=array_fill(0,100,-1);
15     $arr[0]=0;$arr[1]=1;$arr[2]=1;
16     echo f($n).PHP_EOL;
17 }
18 function f($n){
19     global $arr;
20     if($arr[$n]!=-1) return $arr[$n];
21     else return $arr[$n]=2*f($n-2)+f($n-3);
22     //if($n==1||$n==2) return 1;
23     //else return 2*f($n-2)+f($n-3);
24 }
25 ?>

 

 

 

 

 

 
posted @ 2018-06-28 12:15  范仁义  阅读(650)  评论(0编辑  收藏  举报