CCF-GESP计算机学会等级考试2026年3月一级C++T2 数字替换
B4496 [GESP202603 一级] 数字替换题目描述Alice 不喜欢数字444但觉得数字888寓意好她想把数中的444全都替换成888若数中不含444则无需修改你能帮帮她吗输入格式输入一行包含一个整数AAA表示替换前的数。输出格式输出一行包含一个整数BBB表示替换后的数。输入输出样例 #1输入 #18459045输出 #18859085输入输出样例 #2输入 #2123输出 #2123说明/提示样例解释对于样例111输入845904584590458459045中有两个444都将其替换为了888得到885908588590858859085。对于样例222输入123123123中不包含444无需修改输入数字输出123123123。数据范围保证0≤A≤1080\leq A\leq 10^80≤A≤108。解析1.循环输入字符版#includebits/stdc.husingnamespacestd;intmain(){charc;while(cinc){//循环输入单个数字字符if(c4)c8;//如果是4改成8coutc;//输出}return0;}2.拆位再组合#includebits/stdc.husingnamespacestd;intmain(){inta;cina;intans0;//答案intq1;//每一位的权重个位1十位10百位100...while(a0){intda%10;//拆出每一位if(d4)d8;//如果是4改成8ansd*q;//按位权重重新组合a/10;//去掉最后一位q*10;//下一次循环位权重乘十}coutans;return0;}