跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++算法

2026 年 3 月 GESP 真题解析:数字替换 (C++)

GESP 2026 年 3 月 C++ 一级真题,要求将整数中的数字 4 替换为 8。核心思路是将输入视为字符串进行遍历处理,遇到字符 '4' 即修改为 '8'。相比数学取模运算,字符串方法更直观且能避免边界错误。代码采用标准 C++ 实现,包含 IO 优化及引用遍历技巧,适用于处理 0 到 10^9 范围内的整数。

beaabea发布于 2026/3/29更新于 2026/10/167 浏览
2026 年 3 月 GESP 真题解析:数字替换 (C++)

题目背景

在 GESP 一级考试中,字符串处理与基础逻辑判断是常见考点。这道题考察的是对整数中特定数字的识别与替换。

问题描述

Alice 不喜欢数字 4,偏爱数字 8。给定一个整数 A,要求将其中的所有 4 替换为 8,如果没有 4 则保持原样。

输入输出格式

输入: 一行,包含一个整数 A。

输出: 一行,包含替换后的整数 B。

样例演示

样例 1: 输入:

8459045

输出:

8859085

样例 2: 输入:

123

输出:

123

数据范围

  • 0 ≤ A ≤ 10^9

解题思路

虽然题目给出的是整数,但在 C++ 中处理这种'按位替换'的需求时,直接读取为字符串往往比数学取模运算更直观且不易出错。

我们可以把输入的整数当作字符串读入,然后遍历每一个字符。如果发现当前字符是 '4',就把它改成 '8'。最后直接输出修改后的字符串即可。这种方法避免了处理大整数时的边界情况,代码也简洁易读。

代码实现

#include <iostream>
#include <string>
using namespace std;

int main() {
    // 优化 I/O 操作速度
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    string s;
    if (cin >> s) {
        // 遍历字符串中的每个字符
        for (char &c : s) {
            // 如果字符是 '4',替换为 '8'
            if (c == '4') {
                c = '8';
            }
        }
        cout << s << endl;
    }
    return 0;
}

关键点说明

  1. 字符串读取:使用 string 类型接收输入,可以自动处理任意长度的数字,只要不超过内存限制。对于本题 $10^9$ 的范围,字符串长度最多 10 位,非常安全。
  2. 引用遍历:循环中使用 char &c 是为了直接修改字符串中的字符内容,而不是复制一份副本。
  3. 输入检查:加上 if (cin >> s) 是个好习惯,防止空输入导致未定义行为,虽然在竞赛环境中通常保证有输入。

这个解法的时间复杂度是 O(N),其中 N 是数字的位数,空间复杂度也是 O(N)。对于一级考试来说,这是最稳妥的实现方式。

目录

  1. 题目背景
  2. 问题描述
  3. 输入输出格式
  4. 样例演示
  5. 数据范围
  6. 解题思路
  7. 代码实现
  8. 关键点说明

更多推荐文章

查看全部
  • CQF 证书在量化金融转行中的价值与职业发展路径分析
  • 大模型(LLM)学习全攻略:从基础数学到工程化落地
  • R 语言在 AIGC 时代的数据科学应用与实践
  • AI 编程工具定价对比:Cursor、Windsurf、Kiro、Zed 及 VS Code
  • Vue Print Designer 前端可视化打印设计器实战解析
  • 2024 年全职 AI 产品经理转型时机分析
  • MySQL 数据库核心操作:创建、修改、备份与连接排查
  • Python adbc-driver-manager 包语法参数与实际应用案例
  • Java 环境搭建与首个 Hello World 实战指南
  • 设计模式与 LLM 的结合:以模版方法模式为例
  • GLM-4.7 与 MiniMax-M2.1 性能实测对比
  • GitHub 开源项目日报:2026 年 2 月 23 日 AI 工具与代理热榜
  • 算法实战:Z 字形变换与外观数列解析
  • 仓库管理系统:物品类型管理功能实现
  • Linux 基础指令与权限管理指南
  • RabbitMQ/Spring-AMQP 事务与消息限流高级特性详解
  • JavaScript Proxy 代理机制与核心方法详解

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online