行业知识
2023年国青少信息素养大赛智能算法C++挑战复赛-答案一
2026-11-10 01:51:52
来源:互联网转载
1.捡石头
【题目描述】
小强在河边捡了 2块漂亮的石头,他想再捡两块石头,让这4块石头的质量正好为 30斤,并且新捡的两块石头的质量是介于前两块石头的质量之间的数字,请编程 输出第3 块和第4块石头的质量。注:每个石头的重量都是整数如果找不到合适 的石头,则输出00。
【输入格式】
输入2个数,数与数之间以空格间隔,表示2块石头的质量。
【输出格式】
输出表示第 3、4 块石头的质量的所有可能结果,每块石头质量的数字用空格隔开。多组结果时,按第3块石头质量从小到大排序分行输出。
【样例输入】(测试数据不包含本样例)
1 11
【样例输出】
8 10
9 9
思路解析:本题采用枚举法即可,列举出所有符合要求的情况就行。
【参考程序】
- 因为题目没有说明输入的两个数的大小顺序,因此,对输入的两个数进行排序;
- 枚举所有位于已知两个数之间的所有数,并且保证4个数的和为30;
- 变量flag的作用是用于确认,如果无解,则输出0 0
#includeusing namespace std;int main(){int a,b,flag=0;cin>>a>>b;if(a>b)swap(a,b);for(int i=a+1;i