📷 题解插图【GESP】C++ 二级真题解析,[2025年12月]第一题环保能量球
📅 2025-12-27·✍️ OneCoder·计算中...·⏱️ 3 分钟
#GESP#C++#真题#基础语句
GESP C++ 2025年12月,二级真题第一题,考察循环语句应用,应该算比较简单。题目难度⭐☆☆☆☆。
第一题,环保能量球
题目要求
题目描述

题目分析
1. 题意理解
题目要求计算走路获得的“环保能量球”总数。规则非常简单直观:
- 基础奖励:每走 1 公里,获得 1 个能量球。
- 额外奖励:每累计走满 公里,额外获得 1 个能量球。
我们需要计算走 公里后,总共能获得多少个能量球。
2. 解题思路
根据题目规则,我们可以将总能量球分为两部分计算:
- 基础部分:走了 公里,直接获得 个能量球。
- 奖励部分:每 公里奖励 1 个。计算 里面包含了多少个完整的 ,即做除法 。在 C++ 中,整数除法会自动向下取整(舍去小数部分),正好符合“每满 公里”的含义。
3. 算法实现
- 输入:首先读取测试组数 。对于每组数据,读取行走的公里数 和奖励间隔 。
- 计算:使用公式
ans = n + (n / x)。 - 输出:输出计算结果。
4. 复杂度分析
- 时间复杂度:对于每组数据,仅进行一次加法和除法运算,复杂度为 。总时间复杂度为 。
- 空间复杂度:仅使用几个变量存储输入,复杂度为 。
示例代码
CPP
#include <iostream>
/**
* GESP 2025年12月 二级编程题 T1: 环保能量球
*
* 题目核心:
* 1. 基础分:走 n 公里得 n 分。
* 2. 奖励分:每走 x 公里额外得 1 分。
*
* 逻辑:总分 = n + (n / x)
*/
int main() {
int t;
std::cin >> t; // 读取测试组数
while (t--) {
int n, x;
std::cin >> n >> x;
// n 公里基础能量 + (n/x) 公里奖励能量
// C++ 整数除法自动向下取整,符合题目要求
std::cout << n + (n / x) << std::endl;
}
return 0;
}
💡 OneCoder 资源指引
所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI
🤝 技术交流与答疑
欢迎加入:C++ GESP/CSP 考级答疑群(688906745) 与 Java/Python交流群(982860385),点击可直接加群。
📚
猜你想读 · 相关文章推荐
OneCoder (lihongzheshuai)
一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com
💬 读者留言与交流
还没有留言,快来成为第一个讨论者吧!