for循环和递归解决兔子问题(成熟期1个月和2个月的)
2022-10-13 22:27:42 Author: www.yanglong.pro(查看原文) 阅读量:8 收藏

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

文章来源: https://www.yanglong.pro/for%e5%be%aa%e7%8e%af%e8%a7%a3%e5%86%b3%e5%85%94%e5%ad%90%e9%97%ae%e9%a2%98/
如有侵权请联系:admin#unsafe.sh