OneCoder Avatar
OneCodercoderli.com · 937 篇博文
【GESP】C++ 二级真题解析,[2025年12月]第一题环保能量球📷 题解插图

【GESP】C++ 二级真题解析,[2025年12月]第一题环保能量球

📅 2025-12-27·✍️ OneCoder·计算中...·⏱️ 3 分钟
#GESP#C++#真题#基础语句

GESP C++ 2025年12月,二级真题第一题,考察循环语句应用,应该算比较简单。题目难度⭐☆☆☆☆。

第一题,环保能量球

题目要求

题目描述

环保能量球


题目分析

1. 题意理解

题目要求计算走路获得的“环保能量球”总数。规则非常简单直观:

  • 基础奖励:每走 1 公里,获得 1 个能量球。
  • 额外奖励:每累计走满 xx 公里,额外获得 1 个能量球。

我们需要计算走 nn 公里后,总共能获得多少个能量球。

2. 解题思路

根据题目规则,我们可以将总能量球分为两部分计算:

  1. 基础部分:走了 nn 公里,直接获得 nn 个能量球。
  2. 奖励部分:每 xx 公里奖励 1 个。计算 nn 里面包含了多少个完整的 xx,即做除法 n/xn / x。在 C++ 中,整数除法会自动向下取整(舍去小数部分),正好符合“每满 xx 公里”的含义。

3. 算法实现

  • 输入:首先读取测试组数 tt。对于每组数据,读取行走的公里数 nn 和奖励间隔 xx
  • 计算:使用公式 ans = n + (n / x)
  • 输出:输出计算结果。

4. 复杂度分析

  • 时间复杂度:对于每组数据,仅进行一次加法和除法运算,复杂度为 O(1)O(1)。总时间复杂度为 O(t)O(t)
  • 空间复杂度:仅使用几个变量存储输入,复杂度为 O(1)O(1)

示例代码

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

OneCoder (lihongzheshuai)

一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com

💬 读者留言与交流

0 条讨论
✨ 支持 Markdown 语法格式
还没有留言,快来成为第一个讨论者吧!