1 solutions
-
0
简单分析
🎯关键思路:这是经典的鸡兔同笼问题。要让动物数量最少,就尽量多放兔子;要让动物数量最多,就尽量多放鸡。如果脚的总数是奇数,那肯定没有满足要求的答案,直接输出两个 0。要是总数是偶数,最少动物数就是全是兔子时的数量(总数除以 4),最多动物数就是全是鸡时的数量(总数除以 2)。
⚠️易错点:要注意判断脚的总数是奇数还是偶数的情况,奇数时要输出两个 0。
详细解题报告
🌈题目
一个笼子里面关了鸡和兔子(鸡有 2 只脚,兔子有 4 只脚,且没有残疾的)。已经知道了笼子里面脚的总数 ,问笼子里面至少有多少只动物,至多有多少只动物。 输入格式:一行,一个正整数 ( )。 输出格式:一行,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开,如果没有满足要求的答案,则输出两个 ,中间用一个空格分开。 输入输出样例: 输入: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