【GESP】C++一级练习BCQM3052,鸡兔同笼
GESP一级知识点:for
循环和if
的应用。
BCQM3052
题目要求
描述
数学中经典的“鸡兔同笼”问题,已知头共x个,脚共y只,问笼中的鸡和兔各有多少只?
输入
头和脚的数量。
输出
鸡和兔各自数量。一个空格隔开。
输入样例
30 90
输出样例
15 15
题目分析
小学典型鸡兔同笼问题。这里最快速直观的方法当然是用解数学应用的题的思维,求出鸡和兔的数量,但我觉得这样就是纯数学式子,程序的思维太弱化了。因此我让孩子用穷举法进行了编程,即从1开始数到头数,判单每组情况是否满足题意(脚的情况),如果满足就是答案。
代码参考
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
int main() {
int x, y;
cin >> x >> y;
int chicken, rabbit;
for (int i = 0; i <= x; i++) {
chicken = i;
rabbit = x - chicken;
if (chicken + rabbit == x && rabbit * 2 + chicken * 4 == y) {
cout << chicken << " " << rabbit;
}
}
return 0;
}
附一个纯数学方法计算的代码
代码参考-数学方法
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
int main() {
int x, y;
cin >> x >> y;
int chicken, rabbit;
chicken = (x * 4 - y) / 2;
rabbit = x - chicken;
cout<< chicken << " " << rabbit;
return 0;
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
GESP各级别考纲、真题讲解、知识拓展和练习清单等详见【置顶】【GESP】C++ 认证学习资源汇总
“luogu-”系列题目已加入洛谷Java、C++初学团队,作业清单,可在线评测,团队名额有限。
“bcqm-”系列题目可在编程启蒙题库进行在线评测。
欢迎加入:Java、C++、Python技术交流QQ群(982860385),大佬免费带队,有问必答
欢迎加入:C++ GESP/CSP认证学习QQ频道,考试资源总结汇总
欢迎加入:C++ GESP/CSP学习交流QQ群(688906745),考试认证学员交流,互帮互助
本文由作者按照 CC BY 4.0 进行授权