欢迎大家订阅我的专栏:算法题解: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()
{// 输入ncin >> 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