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

编程题

B4257 图书馆里的老鼠

【题目来源】

洛谷:[B4257 GESP202503 一级] 图书馆里的老鼠 - 洛谷 (luogu.com.cn)

【题目描述】

图书馆里有 \(n\) 本书,不幸的是,还混入了一只老鼠,老鼠每 \(x\) 小时能啃光一本书,假设老鼠在啃光一本书之前,不会啃另一本。请问 \(y\) 小时后图书馆里还剩下多少本完整的书。

【输入】

三行,第一行一个正整数 \(n\),表示图书馆里书的数量;

第二行,一个正整数 \(x\),表示老鼠啃光一本书需要的时间;

第三行,一个正整数 \(y\),表示经过的总时间;

输入数据保证 \(y\) 小时后至少会剩下一本完整的书。

【输出】

一行,一个整数,表示 \(y\) 小时后图书馆里还剩下多少本完整的书。

【输入样例】

10
2
3

【输出样例】

8

【算法标签】

《洛谷 B4257 图书馆里的老鼠》 #数学# #顺序结构# #GESP# #2025#

【代码详解】

#include <bits/stdc++.h>
using namespace std;

int n, x, y;  // n: 总数,x: 每个单位的大小,y: 目标总量

int main() {
    cin >> n >> x >> y;  // 输入n, x, y

    if (y % x == 0) {  // 如果y能被x整除
        cout << n - y / x << endl;  // 输出剩余的数量
    } else {  // 如果y不能被x整除
        cout << n - y / x - 1 << endl;  // 输出剩余的数量减1
    }

    return 0;
}

【运行结果】

10
2
3
8

B4258 四舍五入

【题目来源】

洛谷:[B4258 GESP202503 一级] 四舍五入 - 洛谷 (luogu.com.cn)

【题目描述】

四舍五入是一种常见的近似计算方法。现在,给定 \(n\) 个整数,你需要将每个整数四舍五入到最接近的整十数。例如,\(43\) 四舍五入后为 \(40\)\(58\) 四舍五入后为 \(60\)

【输入】

\(n+1\) 行,第一行,一个整数 \(n\),表示接下来输入的整数个数。

接下来 \(n\) 行,每行一个整数 \(a_1,⋯,a_n\),表示需要四舍五入的整数。

【输出】

\(n\) 行,每行一个整数,表示每个整数四舍五入后的结果。

【输入样例】

5
43
58
25
67
90

【输出样例】

40
60
30
70
90

【算法标签】

《洛谷 B4258 四舍五入》 #循环结构# #GESP# #2025#

【代码详解】

#include <bits/stdc++.h>
using namespace std;

int n;  // 定义变量n,表示输入的整数个数

int main() {
    cin >> n;  // 输入整数个数n

    // 遍历输入的n个整数
    for (int i = 1; i <= n; i++) {
        int x;
        cin >> x;  // 输入当前整数x

        int gw = x % 10;  // 计算x的个位数
        int sw = x / 10;  // 计算x的十位数

        if (gw < 5) {  // 如果个位数小于5
            cout << sw * 10 << endl;  // 输出十位数乘以10
        } else {  // 如果个位数大于等于5
            cout << (sw + 1) * 10 << endl;  // 输出十位数加1后乘以10
        }
    }

    return 0;
}

【运行结果】

5
43
40
58
60
25
30
67
70
90
90
posted @ 2026-03-28 08:56  团爸讲算法  阅读(6)  评论(0)    收藏  举报