GESP认证C++编程真题解析 | 202512 一级

编程题

B4445 小杨的爱心快递

【题目来源】

洛谷:[B4445 GESP202512 一级] 小杨的爱心快递 - 洛谷

【题目描述】

小杨是“爱心社区”的小志愿者,每周他都会帮助邻居们寄送捐赠给山区小学的文具和书籍。快递公司为了支持公益行动,制定了特殊的运费规则,鼓励大家合理包装:

假设快递的体积为 \(V\),重量为 \(G\)

  • 按体积计算:运费按体积计算,公式是 \(0.5 \times V\) 元。
  • 按重量计算:为了鼓励减轻包裹重量,规则是:当重量小于 300 克,即 \(G < 300\) 时,运费为 \(M\) 元;当重量达到或超过 300 克,即 \(G \geq 300\) 时,运费为 \(N\) 元。

快递公司的叔叔说:“我们应该选择最公平合理的计费方式。”

所以,最终的运费会取按体积计算和按重量计算这两种方式中价格较低的那一个,这样对寄件人最公道。

【输入】

四行,每行一个一位小数的浮点数,分别代表,快递的体积 \(V\),快递的重量 \(G\),第一档重量运费 \(M\),第二档重量运费 \(N\)

【输出】

一行一个一位小数,代表实际快递运费。

【输入样例】

100.4
300.2
60.6
70.5

【输出样例】

50.2

【算法标签】

《洛谷 B4445 小杨的爱心快递》 #分支结构# #GESP# #2025#

【代码详解】

#include <bits/stdc++.h>
using namespace std;double V, G, M, N;  // 四个输入参数
int main()
{// 输入四个参数cin >> V >> G >> M >> N;// 计算可用的时间tdouble t = min(V * 0.5, (G < 300 ? M : N));// 输出结果,保留一位小数printf("%.1f\n", t);return 0;
}

【运行结果】

100.4
300.2
60.6
70.5
50.2

B4446 手机电量显示

【题目来源】

洛谷:[B4446 GESP202512 一级] 手机电量显示 - 洛

【题目描述】

小杨的手机就像一个聪明的小助手,当电量变化时,它会用不同的方式来提醒我们,假设当前的电量百分比为 \(P\)

  • 当电量非常低(不超过 10,即 \(P \leq 10\)),它会显示一个大写字母 R,就像在说:“快给我充电吧!(Red 警告色)”
  • 当电量有点低(超过 10 但不超过 20,即 \(10 < P \leq 20\)),它会显示一个大写字母 L,意思是“电量有点 Low 啦!”
  • 当电量比较充足(超过 20,即 \(P > 20\)),它就会直接显示具体的数字,比如直接显示 50,表示还有 50 的电量。

【输入】

第一行一个正整数 \(T\),代表数据组数。

对于每组数据,一行包含一个正整数 \(P\),代表手机电量百分比。

【输出】

对于每组数据,输出一行,代表当前手机显示的电量信息。

【输入样例】

5
10
1
20
99
19

【输出样例】

R
R
L
99
L

【算法标签】

《洛谷 B4446 手机电量显示》 #循环结构# #GESP# #2025#

【代码详解】

#include <bits/stdc++.h>
using namespace std;int t;  // 测试用例的数量int main()
{// 输入测试用例数量cin >> t;// 处理每个测试用例while (t--){int p;  // 输入参数pcin >> p;// 根据p的值进行条件判断if (p > 20){// 情况1:p > 20// 直接输出p的值cout << p << endl;}else if (p > 10 && p <= 20){// 情况2:10 < p ≤ 20// 输出字母"L"cout << "L" << endl;}else{// 情况3:p ≤ 10// 输出字母"R"cout << "R" << endl;}}return 0;
}

【运行结果】

5
10
R
1
R
20
L
99
99
19
L