GESP认证C++编程真题解析 | 202603 一级
编程题
B4495 交朋友
【题目来源】
洛谷:[B4495 GESP202603 一级] 交朋友 - 洛谷
【题目描述】
Alice 班上共有 4 个小朋友,身高分别为 \(H_1\), \(H_2\), \(H_3\), \(H_4\),其中 Alice 的身高为 \(H_1\)。Alice 想要和身高最接近她的人交朋友,如果有多个人符合条件,则 Alice 想和其中较矮的那一人做朋友,你能告诉她这个人的身高是多少吗?
【输入】
输入共 4 行,第 \(i\) 行包含一个整数 \(H_i\),表示班上小朋友的身高。
【输出】
输出 1 行,包含一个整数 \(h\),表示 Alice 想交的朋友的身高。
【输入样例】
150
165
135
133
【输出样例】
135
【算法标签】
《洛谷 B4495 交朋友》 #分支结构# #GESP# #2026#
【代码详解】
#include <bits/stdc++.h>
using namespace std;
int main()
{
int h1, h2, h3, h4; // 定义四个整数变量,表示四个高度
cin >> h1 >> h2 >> h3 >> h4; // 从标准输入读取四个高度值
int minh = h2; // 初始化最小高度差对应的高度为h2
int minn = abs(h1 - h2); // 初始化最小高度差为h1和h2的差的绝对值
// 比较h3和h1的高度差
if (abs(h3 - h1) < minn || (abs(h3 - h1) == minn && h3 < minh))
{
minh = h3; // 如果h3的高度差更小,或者高度差相同但h3更矮,则更新最小高度
minn = abs(h3 - h1); // 更新最小高度差
}
// 比较h4和h1的高度差
if (abs(h4 - h1) < minn || (abs(h4 - h1) == minn && h4 < minh))
{
minh = h4; // 如果h4的高度差更小,或者高度差相同但h4更矮,则更新最小高度
minn = abs(h4 - h1); // 更新最小高度差
}
cout << minh << endl; // 输出与h1高度差最小的高度值,如果高度差相同则输出较小的那个高度
return 0; // 程序正常结束
}
【运行结果】
150
165
135
133
135
B4496 数字替换
【题目来源】
洛谷:[B4496 GESP202603 一级] 数字替换 - 洛谷
【题目描述】
Alice 不喜欢数字 \(4\),但觉得数字 \(8\) 寓意好,她想把数中的 \(4\) 全都替换成 \(8\),若数中不含 \(4\) 则无需修改,你能帮帮她吗?
【输入】
输入一行,包含一个整数 \(A\),表示替换前的数。
【输出】
输出一行,包含一个整数 \(B\),表示替换后的数。
【输入样例】
8459045
【输出样例】
8859085
【算法标签】
《洛谷 B4496 数字替换》 #循环结构# #GESP# #2026#
【代码详解】
#include <bits/stdc++.h> // 包含所有标准库头文件
using namespace std; // 使用标准命名空间
string a; // 定义一个字符串变量a,用于存储输入
int main() // 主函数入口
{
cin >> a; // 从标准输入读取一个字符串到变量a中
// 遍历字符串a的每个字符
for (int i = 0; i < a.size(); i++)
{
// 如果当前字符是'4'
if (a[i] == '4')
{
a[i] = '8'; // 将'4'替换为'8'
}
}
cout << a << endl; // 输出替换后的字符串
return 0; // 程序正常结束
}
【运行结果】
8459045
8859085
浙公网安备 33010602011771号