1

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

​欢迎大家订阅我的专栏:算法题解:C++与Python实现
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:GESP认证C++编程真题解析 | 汇总


编程题

B3921 小杨的考试

【题目来源】

洛谷:B3921 [GESP202312 一级] 小杨的考试 - 洛谷

【题目描述】

今天是星期 \(X\),小杨还有 \(N\) 天就要考试了,你能推算出小杨考试那天是星期几吗?(本题中使用 \(7\) 表示星期日)

【输入】

输入 \(2\) 行,第一行一个整数 \(X(1\le X\le 7)\);第二行一个整数 \(N(1\le N \le 364)\)

【输出】

输出一个整数,表示小杨考试那天是星期几。

【输入样例】

1 
6

【输出样例】

7

【算法标签】

《洛谷 B3921 小杨的考试》 #分支结构# #GESP# #2023#

【代码详解】

#include <bits/stdc++.h>  // 包含标准库头文件
using namespace std;      // 使用标准命名空间

int x, n;  // x:初始星期几,n:经过的天数

int main() {
    cin >> x >> n;  // 输入初始星期几和经过的天数
    
    // 循环n次,模拟每一天的变化
    for (int i = 1; i <= n; i++) {
        x = x + 1;       // 星期数加1
        if (x > 7) {     // 如果超过7(星期日)
            x = 1;       // 重置为星期一
        }
    }
    
    cout << x << endl;  // 输出最终星期几
    return 0;           // 程序正常结束
}

【运行结果】

1
6
7

B3922 小杨报数

【题目来源】

洛谷:B3922 [GESP202312 一级] 小杨报数 - 洛谷

【题目描述】

小杨需要从 \(1\)\(N\) 报数。在报数过程中,小杨希望跳过 \(M\) 的倍数。例如,如果 \(N=5\)\(M=2\),那么小杨就需要依次报出 \(1\)\(3\)\(5\)。 现在,请你依次输出小杨报的数。

【输入】

输入 \(2\) 行,第一行一个整数 \(N(1≤N≤1,000)\);第二行一个整数 \(M(2≤M≤100)\)

【输出】

输出若干行,依次表示小杨报的数。

【输入样例】

5
2

【输出样例】

1
3
5

【算法标签】

《洛谷 B3922 小杨报数》 #循环结构# #GESP# #2023#

【代码详解】

#include <bits/stdc++.h>  // 包含标准库头文件
using namespace std;      // 使用标准命名空间

int n, m;  // n:数字范围上限,m:要跳过的倍数

int main() {
    cin >> n >> m;  // 输入数字范围n和倍数m
    
    // 遍历1到n的所有数字
    for (int i = 1; i <= n; i++) {
        // 如果i是m的倍数,跳过不输出
        if (i % m == 0) {
            continue;  // 跳过当前迭代
        }
        // 否则输出该数字
        else {
            cout << i << endl;
        }
    }
    
    return 0;  // 程序正常结束
}

【运行结果】

5
2
1
3
5
posted @ 2026-01-19 17:10  热爱编程的通信人  阅读(0)  评论(0)    收藏  举报