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

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

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

在这里插入图片描述

题目描述

Alice 不喜欢 4,喜欢 8,她想把 4 全换成 8,若无 4 则不修改。

输入格式

输入一行,一个整数 A,表示替换前的数。

输出格式

输出一行,包含一个整数 B,表示替换后的数。

样例

样例 1:

输入:

8459045 

输出:

8859085 

样例 2:

输入:

123 

输出:

123 

数据范围

  • 0 ≤ A ≤ 10 9 0 \leq A \leq 10^9 0≤A≤109

思路分析1(一级考纲思路分析)

  1. 输入与变量
    • 输入一个整数 a(范围 0 ≤ a ≤ 10⁹)。
    • 定义三个变量:
      • b:存储替换后的结果,初始为 0。
      • ta 的副本,用于逐位分解。
      • p:当前位的权重(个位为 1,十位为 10,百位为 100……),初始为 1。
  2. 逐位处理
    • 使用 while 循环,条件为 t > 0(当 a = 0 时循环不执行,直接输出 0)。
    • 在循环中:
      • 取出 t 的最低位:d = t % 10
      • 判断 d 是否为 4,若是则改为 8。
      • 将当前位的值乘以权重后累加到结果:b = b + d * p
      • 更新权重准备处理更高位:p = p * 10
      • 去掉已处理的最低位:t = t / 10
  3. 输出结果
    • 循环结束后,b 中保存的就是替换后的数,直接输出。

AC代码1(一级考纲思路代码)

#include<bits/stdc++.h>usingnamespace std;intmain(){int a;// 原数 cin >> a;int b =0;// 结果int t = a;// 临时变量int p =1;// 当前位的权重while(t >0){int d = t %10;// 取出最低位if(d ==4){// 如果是4,改为8 d =8;} b = b + d * p;// 按权重累加 p = p *10;// 权重升级 t = t /10;// 去掉最低位}// 如果a=0,循环不执行,b保持0,输出0 cout << b << endl;return0;}

思路分析2(使用字符串)

题目要求将整数中的数字 4 全部替换为 8,如果原数中没有 4 则保持不变。
我们可以采用字符串处理的方式:

  1. 将输入的整数以字符串形式读入,这样可以方便地逐位检查每个字符。
  2. 遍历字符串的每一位,如果当前字符是 '4',就将其修改为 '8'
  3. 最后输出修改后的字符串。

AC代码2(使用字符串)

#include<bits/stdc++.h>usingnamespace std;intmain(){ string s;// 用字符串存储输入的数 cin >> s;// 读入整数(以字符串形式)// 遍历字符串的每一个字符for(char&c : s){// 使用引用,直接修改原字符if(c =='4'){// 如果当前字符是 '4' c ='8';// 替换为 '8'}} cout << s << endl;// 输出替换后的字符串return0;}
各种学习资料,助力大家一站式学习和提升!!!
#include<bits/stdc++.h>usingnamespace std;intmain(){ cout<<"########## 一站式掌握信奥赛知识! ##########"; cout<<"############# 冲刺信奥赛拿奖! #############"; cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}

【秘籍汇总】(完整csp信奥赛C++学习资料):

1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

https://edu.ZEEKLOG.net/lecturer/7901 点击跳转

在这里插入图片描述
2、CSP信奥赛C++竞赛拿奖视频课:

https://edu.ZEEKLOG.net/course/detail/40437 点击跳转

在这里插入图片描述
3、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.ZEEKLOG.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.ZEEKLOG.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.ZEEKLOG.net/weixin_66461496/category_13113932.html 点击跳转

4、csp信奥赛冲刺一等奖有效刷题题解:

CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新):https://blog.ZEEKLOG.net/weixin_66461496/category_12808781.html 点击跳转

信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新):
https://blog.ZEEKLOG.net/weixin_66461496/category_13125089.html 点击跳转

5、GESP C++考级真题题解:
在这里插入图片描述

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.ZEEKLOG.net/weixin_66461496/category_12858102.html 点击跳转

在这里插入图片描述

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.ZEEKLOG.net/weixin_66461496/category_12869848.html 点击跳转

在这里插入图片描述


GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.ZEEKLOG.net/weixin_66461496/category_13117178.html 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespace std;intmain(){ cout<<"跟着王老师一起学习信奥赛C++"; cout<<" 成就更好的自己! "; cout<<" csp信奥赛一等奖属于你! ";return0;}
在这里插入图片描述

Read more

【C++指南】string(二):深入探究 C++ `basic_string`:成员变量、函数全解析

【C++指南】string(二):深入探究 C++ `basic_string`:成员变量、函数全解析

.💓 博客主页:倔强的石头的ZEEKLOG主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C++指南》 期待您的关注 文章目录 * 引言 * `basic_string` 的成员变量 * 内部结构概述 * 示例代码推测成员变量 * 默认成员函数 * 构造函数 * 析构函数 * 赋值运算符重载 * 迭代器 * 迭代器类型 * 迭代器的使用规则 * 容量管理 * 容量相关函数 * 容量管理规则 * 修改操作 * 插入操作 * 删除操作 * 追加操作 * 修改操作规则 * 其他相关函数 * 查找函数 * 替换函数 * 比较函数 * 总结 引言 在第一篇文章中【C++指南】string(一):string从入门到掌握,我们对 C++ 中 string 的起源、basic_string 模板类以及相关字符串类型有了初步的了解。

By Ne0inhk
【C++笔记】类与对象(进阶)

【C++笔记】类与对象(进阶)

前言:           在前文中,我们已经系统地学习了类与实例化对象的概念定义、语法结构和核心特性。本文将深入探讨类与对象的默认成员函数,其中以下四个方面最为关键:构造函数、拷贝构造函数、析构函数以及操作符重载。                  一、类的默认成员函数          定义:默认成员函数就是用户没有显式实现,编译器会⾃动⽣成的成员函数称为默认成员函数。                  在⼀个类中,如果我们不显示编写的情况下,编译器会默认⽣成以下4个重要的默认成员函数:          默认成员函数是C++中重要且复杂的知识点,需要从两个维度进行掌握:          ①了解编译器自动生成的默认函数行为及其适用性          ②当编译器自动生成的默认函数无法满足需求时,掌握自定义实现的方法                   二、构造函数          什么是构造函数?                  你可以把构造函数想象成产品的“出厂设置”,当你根据图纸(类)生产出一个新零件(对象)时,构造函数

By Ne0inhk

OSGEarth 在 Qt C++ 中显示三维地球经纬度

OSGEarth 在 Qt C++ 中显示三维地球经纬度 概述 本文介绍如何在 Qt C++ 项目中集成 OSGEarth,并实现鼠标交互获取和显示三维地球表面的经纬度坐标。 环境要求 * Qt 5.12+ 或 Qt 6.x * OSGEarth 3.x * OpenSceneGraph (OSG) 3.6+ * C++11 或更高版本 核心功能实现 1. 项目配置 首先在 .pro 文件中添加必要的库: QT += core gui widgets opengl CONFIG += c++11 # OSG 和 OSGEarth 库配置 INCLUDEPATH += /usr/

By Ne0inhk
C++ map 全面解析:从基础用法到实战技巧

C++ map 全面解析:从基础用法到实战技巧

🔥个人主页:Cx330🌸 ❄️个人专栏:《C语言》《LeetCode刷题集》《数据结构-初阶》《C++知识分享》 《优选算法指南-必刷经典100题》《Linux操作系统》:从入门到入魔 🌟心向往之行必能至 🎥Cx330🌸的简介: 目录 前言: 一、map 核心概念与特性 1. 什么是 map? 2. 头文件与命名空间 3. map模板参数与内部类型 4. 常见初始化方式: 二、map 基础用法(必备知识点) 2.1 构造与初始化 2.2 遍历 1. 迭代器遍历(三种方式): 2. 范围for遍历 3. 结构化绑定(C++17支持): 2.3 插入操作(

By Ne0inhk