<?php
/**
* 兔子问题。
* 定一对大兔子每月能生一对小兔子,
* 且每对新生的小兔子经过一个月可以长成一对大兔子,
* 具备繁殖能力,
* 如果不发生死亡,
* 且每次均生下一雌一雄,
* 问一年后共有多少对兔子?
*/
function rabbit($month = 12){
$one = 1; //第一个月兔子的对数
$two = 2; //第二个月兔子的对数
$sum = 0; //总数
// 1,2,3,5,8,13,21,34,55,89,144,233
if($month == 1){
$sum = 1;
}
if($month == 2){
$sum = 2;
}
for($i = 2;$i < $month; $i++){
$sum = $one + $two;
$one = $two;
$two = $sum;
}
echo $month.'个月后共有'.$sum.'对兔子';
}
//递归
function recursion($month = 12){
if($month == 1){
return 1;
}elseif($month == 2){
return 2;
}else{
return recursion($month-1)+recursion($month-2);
}
}
$month = 12;
echo $month . '个月后总共有' . recursion($month) . '只兔子';