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(一级考纲思路分析)
- 输入与变量:
- 输入一个整数
a(范围 0 ≤ a ≤ 10⁹)。 - 定义三个变量:
b:存储替换后的结果,初始为 0。t:a的副本,用于逐位分解。p:当前位的权重(个位为 1,十位为 10,百位为 100……),初始为 1。
- 输入一个整数
- 逐位处理:
- 使用
while循环,条件为t > 0(当a = 0时循环不执行,直接输出 0)。 - 在循环中:
- 取出
t的最低位:d = t % 10。 - 判断
d是否为 4,若是则改为 8。 - 将当前位的值乘以权重后累加到结果:
b = b + d * p。 - 更新权重准备处理更高位:
p = p * 10。 - 去掉已处理的最低位:
t = t / 10。
- 取出
- 使用
- 输出结果:
- 循环结束后,
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 则保持不变。
我们可以采用字符串处理的方式:
- 将输入的整数以字符串形式读入,这样可以方便地逐位检查每个字符。
- 遍历字符串的每一位,如果当前字符是
'4',就将其修改为'8'。 - 最后输出修改后的字符串。
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;}