兔群繁殖之谜

47 阅读2分钟

生物学家小 R 正在研究一种特殊的兔子品种的繁殖模式。这种兔子的繁殖遵循以下规律:

每对成年兔子每个月会生育一对新的小兔子(一雌一雄)。 新生的小兔子需要一个月成长,到第二个月才能开始繁殖。 兔子永远不会死亡。 小 R 从一对新生的小兔子开始观察。他想知道在第 A 个月末,总共会有多少对兔子。

请你帮助小 R 编写一个程序,计算在给定的月份 A 时,兔子群体的总对数。

注意:

初始时有 1 对新生小兔子。 第 1 个月末有 1 对兔子:原来那对变成了成年兔子,并开始繁殖。 第 2 个月末有 2 对兔子:原来那 1 对成年兔子,繁殖了 1 对新生的小兔子。 从第 3 个月开始,兔子群体会按照上述规律增长。 输入 一个整数 A(1 ≤ A ≤ 50),表示月份数。

返回 一个长整数,表示第 A 个月末兔子的总对数。

测试样例 样例1:

输入:A = 1 返回:1

样例2:

输入:A = 5 返回:8

样例3:

输入:A = 15 返回:987 初始化变量:我们需要两个变量来存储前两个月的兔子对数。 迭代计算:从第三个月开始,每个月的兔子对数是前两个月兔子对数之和。 返回结果:最后返回第 n 个月的兔子对数。 代码框架 java public class Main {    public static long     solution(int A) {        // 如果月份小于等于        2,直接返回A        if (A <= 2) {            return A;        }        // 初始化前两个月的兔        子对数        long prev1 =         1; // 第一个月的兔子        对数        long prev2 =         2; // 第二个月的兔子        对数        long current =         0; // 当前月的兔子对        数        // 从第三个月开始迭代        计算        for (int i = 3; i         <= A; i++) {            // 计算当前月的            兔子对数            current =             prev1 + prev2;            // 更新前两个月            的兔子对数            prev1 = prev2;            prev2 =             current;        }        // 返回第A个月的兔子        对数        return current;    }    public static void     main(String[] args) {        // 添加你的测试用例        System.out.println        (solution(1) ==         1L);        System.out.println        (solution(5) ==         8L);        System.out.println        (solution(15) ==         987L);    }}

关键步骤解释 初始条件:如果 A 小于等于2,直接返回 A。 迭代计算:从第三个月开始,使用循环计算每个月的兔子对数,并更新前两个月的兔子对数。 返回结果:最后返回第 A 个月的兔子对数。 你可以根据这个框架继续完善代码,确保所有测试用例都能通过。