yl.fighter 发表于 2013-2-7 01:53:28

牛年求牛:有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛

问题: 
牛年求牛:有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛?
// 方法1:按照时间推移计算, 嵌套循环function countcows($years) {    $cows[] = 0;    if($years < 4) return 1;    for($i=4; $i <= $years; $i++) {      for($j=0, $k=count($cows); $j<$k; $j++) {            $age = $i - $cows[$j];            if($age >= 4 && $age < 15) $cows[] = $i;            else if($age == 20) unset($cows[$j]);      }    }    return count($cows);}// 方法2:不断的计算每头牛的产出, 使用递归function countcows2($years) {    static $cows_num = 1;    for($i=1; $i<=$years; $i++) {      if($i >= 4 && $i < 15) {            $cows_num ++;            countcows2($years - $i);      }      if($i == 20) $cows_num --;    }    return $cows_num;}echo countcows(29);echo '<br/>';echo countcows2(29);
页: [1]
查看完整版本: 牛年求牛:有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛