1

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

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

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

适合人群:

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

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


编程题

B3838 时间规划

【题目来源】

洛谷:[B3838 GESP202306 一级] 时间规划 - 洛谷

【题目描述】

小明在为自己规划学习时间。现在他想知道两个时刻之间有多少分钟,你能通过编程帮他做到吗?

【输入】

输入 \(4\) 行,第一行为开始时刻的小时,第二行为开始时刻的分钟,第三行为结束时刻的小时,第四行为结束时刻的分钟。输入保证两个时刻是同一天,开始时刻一定在结束时刻之前。时刻使用 \(24\) 小时制,即小时在 \(0\)\(23\) 之间,分钟在 \(0\)\(59\) 之间。

【输出】

输出一行,包含一个整数,从开始时刻到结束时刻之间有多少分钟。

【输入样例】

9
5
9
6

【输出样例】

1

【算法标签】

《洛谷 B3838 时间规划》 #顺序结构# #GESP# #2023#

【代码详解】

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

int sth, stm;  // 开始时间:小时和分钟
int edh, edm;  // 结束时间:小时和分钟

int main()
{
    // 输入开始和结束时间
    cin >> sth >> stm;  // 输入开始时间(时 分)
    cin >> edh >> edm;  // 输入结束时间(时 分)
    
    // 计算总时间差(单位:分钟)
    int total_minutes = (edh * 60 + edm) - (sth * 60 + stm);
    
    // 输出时间差
    cout << total_minutes << endl;
    
    return 0;
}

【运行结果】

9
5
10
0
55

B3839 累计相加

【题目来源】

洛谷:[B3839 GESP202306 一级] 累计相加 - 洛谷

【题目描述】

输入一个正整数 \(n\),求形如:

\(1+(1+2)+(1+2+3)+(1+2+3+4)+ \cdots +(1+2+3+4+5+ \cdots +n)\) 的累计相加。

【输入】

输入一个正整数 \(n\)。约定 \(1<n \le 100\)

【输出】

输出累计相加的结果。

【输入样例】

3

【输出样例】

10

【算法标签】

《洛谷 B3839 累计相加》 #数学# #循环结构# #GESP# #2023#

【代码详解】

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

int n;   // 输入的正整数n
int ans; // 结果累加器

int main()
{
    // 输入n
    cin >> n;
    
    // 双重循环计算
    for (int i = 1; i <= n; i++)  // 外层循环:i从1到n
    {
        for (int j = 1; j <= i; j++)  // 内层循环:j从1到i
        {
            ans += j;  // 将j累加到ans
        }
    }
    
    // 输出结果
    cout << ans << endl;
    
    return 0;
}

【运行结果】

3
10
posted @ 2026-01-18 21:41  热爱编程的通信人  阅读(4)  评论(0)    收藏  举报