假设一对初生兔子要一个月才到成熟期,而一对成熟兔子每月会生一对兔子,那么,由一对初生兔子开始,12 个月后会有多少对兔子呢?
1 2 3 5 8 13 21 34 55 89 144 233
仔细观察规律会发现后一项等于前两项之和
function a($m = 12) {
if ($m < -1) return 0;
if ($m == 0 || $m == -1) return 1;
return a($m - 1) + a($m - 2);
}
for ($i = 0; $i < 12; $i++) {
echo $i, " ", a($i), "\n";
}
以下是错版:(成熟期为两个月)(以上是成熟期一个月的斐波那契数列)
一对成年的兔子,一个月可以生一对兔子,新出生的一对兔子在出生后第3个月开始也可以产下一对兔子,现有一对兔子,请问一年后又多少只兔子
开局一对成年兔子
<?php # 月份数 $m = 5; # 出生 第一个月 和出生 第二个月的兔子 $temp1 = $temp2 = 0; # 成年兔子 $adultRabbit = 1; for ($i = 0; $i < $m; $i++) { $oldAdultRabbit = $adultRabbit; $adultRabbit += $temp2; $temp2 = $temp1; $temp1 = $oldAdultRabbit; } echo "$adultRabbit + $temp1 + $temp2 = "; echo $adultRabbit + $temp1 + $temp2, "\n";