假设一对初生兔子要一个月才到成熟期,而一对成熟兔子每月会生一对兔子,那么,由一对初生兔子开始,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";
