当前位置: 面试刷题>> 森林中的兔子 (经典算法题500道)


**题目描述补充**: 在森林中,有一群兔子,它们按照特定的规则繁殖。具体规则如下: 1. 初始时,森林中有1对年轻的兔子(即2只兔子)。 2. 从第二个月开始,每个月每对年轻的兔子都会成长为成熟的兔子对,并且它们会额外生出1对年轻的兔子。 3. 假设兔子不会死亡,问经过n个月后,森林中总共有多少对兔子? 这个问题是著名的斐波那契数列问题的一个变体,其中斐波那契数列是这样一个数列:每个数是前两个数的和,数列以0和1开始。 **示例代码实现**: ### PHP 示例 ```php function fibonacciRabbits($n) { if ($n <= 1) { return 1; // 初始时1对兔子 } $young = 1; // 年轻兔子对数 $mature = 0; // 成熟兔子对数 $total = 1; // 总兔子对数 for ($i = 2; $i <= $n; $i++) { // 下个月年轻兔子变成成熟兔子,并且每对成熟兔子生出1对年轻兔子 $newYoung = $mature; $mature = $young + $mature; $young = $newYoung; $total = $young + $mature; // 更新总兔子对数 } return $total; } echo fibonacciRabbits(10); // 示例输出第10个月的兔子对数 ``` ### Python 示例 ```python def fibonacci_rabbits(n): if n <= 1: return 1 young, mature = 1, 0 total = 1 for i in range(2, n + 1): new_young = mature mature, young = young + mature, new_young total = young + mature return total print(fibonacci_rabbits(10)) # 示例输出第10个月的兔子对数 ``` ### JavaScript 示例 ```javascript function fibonacciRabbits(n) { if (n <= 1) { return 1; } let young = 1; // 年轻兔子对数 let mature = 0; // 成熟兔子对数 let total = 1; // 总兔子对数 for (let i = 2; i <= n; i++) { let newYoung = mature; mature = young + mature; young = newYoung; total = young + mature; } return total; } console.log(fibonacciRabbits(10)); // 示例输出第10个月的兔子对数 ``` **码小课网站中有更多相关内容分享给大家学习**,包括斐波那契数列的深入解析、其他算法问题解析以及面试技巧等,欢迎访问码小课网站获取更多学习资料。
推荐面试题