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
posted @ 2026-03-18 14:10  团爸讲算法  阅读(166)  评论(0)    收藏  举报