C语言兔子生娃(一公一母) 求和案例

题目描述

你买了一对兔子,一公一母,从三个月大开始,它们每个月生下了一对小兔子 (默认生出来的都是一公一母),小兔子三个月之后也会开始生小小兔,请问第 n 个月,兔子一共有的对数是(要求自己输入 n 的具体数值,运行程序后可获得答案)

提示:利用 for 循环求和。

要求:保证程序的健壮性(当输入不合要求的数 字时,程序不会出现卡死等其他情况);养成写注释的习惯是非常必要的!在重 要的语句后面写上注释。

输入:5

输出:有 12 对兔子

源代码

#include <stdio.h>

int main() {
    int month;
    int rabbitPairs[100];  // 用于存储每个月的兔子对数,最多支持计算100个月

    printf("请输入月份:");
    scanf("%d", &month);

    // 初始时只有一对兔子,即第一个月的兔子对数为1
    rabbitPairs[0] = 1;

    // 利用循环计算每个月的兔子对数
    for (int i = 1; i < month; i++) {
        // 前两个月的兔子对数为上一个月的兔子对数加上1(一公一母)
        if (i == 1 || i == 2) {
            rabbitPairs[i] = rabbitPairs[i - 1] + 1;
        } 
        // 从第三个月开始,兔子对数为上一个月的兔子对数加上前两个月的兔子对数
        else {
            rabbitPairs[i] = rabbitPairs[i - 1] + rabbitPairs[i - 2];
        }
    }

    // 计算总兔子对数
    int totalPairs = 1;  // 初始时只有一对兔子
    for (int i = 2; i <= month; i++) {
        totalPairs += rabbitPairs[i - 2];
    }

    printf("第%d个月,有%d对兔子\n", month, totalPairs);

    return 0;
}

题目中给出的初始兔子对数为1,而不是2。因此,我们需要在计算总兔子对数的循环中,将初始值设置为1。另外,由于小兔子是从第三个月开始生的,所以在计算总兔子对数时,要从第二个月开始循环,并累加每个月的兔子对数。

最后,输出第n个月的总兔子对数。

运行截图

图片[1]-C语言兔子生娃(一公一母) 求和案例-QQ沐编程

© 版权声明
THE END
喜欢就支持一下吧
点赞11赞赏 分享