1 solutions

  • 0
    @ 2025-10-26 11:14:43

    简单分析

    🎯关键思路:这是经典的鸡兔同笼问题。要让动物数量最少,就尽量多放兔子;要让动物数量最多,就尽量多放鸡。如果脚的总数是奇数,那肯定没有满足要求的答案,直接输出两个 0。要是总数是偶数,最少动物数就是全是兔子时的数量(总数除以 4),最多动物数就是全是鸡时的数量(总数除以 2)。

    ⚠️易错点:要注意判断脚的总数是奇数还是偶数的情况,奇数时要输出两个 0。

    详细解题报告

    🌈题目

    一个笼子里面关了鸡和兔子(鸡有 2 只脚,兔子有 4 只脚,且没有残疾的)。已经知道了笼子里面脚的总数 aa ,问笼子里面至少有多少只动物,至多有多少只动物。 输入格式:一行,一个正整数 aaa<32768a < 32768 )。 输出格式:一行,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开,如果没有满足要求的答案,则输出两个 00,中间用一个空格分开。 输入输出样例: 输入:20 输出:5 10

    💡题意分析

    这道题就是已知鸡和兔子脚的总数,让我们找出笼子里动物最少和最多分别有多少只。因为鸡有 2 只脚,兔子有 4 只脚,所以我们要根据脚的总数来计算动物数量。

    ⭐难度等级

    ★★,这道题对于刚接触这类问题的同学来说可能有点难度,但只要理解了思路,还是比较容易解决的。

    🚀解题思路

    我们分情况来考虑:

    • 如果脚的总数是奇数,因为鸡和兔子的脚数都是偶数,所以不可能有满足要求的答案,直接输出两个 0。
    • 如果脚的总数是偶数,要得到最少的动物数,就尽量多放兔子,用脚的总数除以 4 就可以得到;要得到最多的动物数,就尽量多放鸡,用脚的总数除以 2 就行。

    💭解题反思

    在做这道题的时候,一定要注意脚的总数是奇数的情况,这是一个很容易忽略的点。以后遇到类似的问题,要先仔细分析各种可能的情况,再进行计算。

    📝参考程序

    #include<bits/stdc++.h>
    using namespace std;
    int main() {
        int a;
        cin >> a; // 输入脚的总数
        if (a % 2 == 1) { // 判断脚的总数是否为奇数
            cout << "0 0" << endl; // 奇数就输出两个 0
        } else {
            int min_num = a / 4; // 计算最少的动物数
            if (a % 4 != 0) { // 如果不能被 4 整除
                min_num++; // 最少动物数要加 1
            }
            int max_num = a / 2; // 计算最多的动物数
            cout << min_num << " " << max_num << endl; // 输出结果
        }
        return 0;
    }
    
    • 1

    Information

    ID
    9
    Time
    1000ms
    Memory
    64MiB
    Difficulty
    6
    Tags
    # Submissions
    23
    Accepted
    11
    Uploaded By