- 帅泓宇 的博客
P0007题解
- @ 2026-2-28 13:21:59
前置:无
最低所需知识点:基础语法
本题有很多做法 先说简单的
1:暴力拆解法
如果你看过P0006的题解 你就可以用上啦~
我们可以用%(取余)符号配合/(向下取整除)符号相配合来获取三位数的每一位!
这里默认定义且读入了n
int a=n/100;
int b=n/10%10;
int c=n%10;
以上三个变量按顺序分别代表了n这个三位数的每一位
相信a和c都没什么疑问 所以我只讲b怎么来的
首先执行n/10会得到n的前两位 再执行%10用于获取前面运算得到的数的最后一位 即三位数中的第二位
然后我们倒叙输出a b c三个变量即可
方法2:字符串+循环
我们都知道 string类型相当与一个长度自定义char数组 所以它也拥有数组的特性(不知道数组特性的去看P0004)
所以我们可以不读入int类型 换个思路 读入string类型 直接循环反向输出即可
3:字符串+函数
我们都知道 string拥有大量的函数 包括可以直接翻转字符串一定长度内容的reverse函数
下面是标准代码
reverse(s.begin(),s.end());
这样可以直接反转整个字符串
我们又知道 字符串可以直接快捷全部输出
反转后仅需
cout<<s;
就可以实现此题了!
当然reverse函数并不是只能翻转整个字符串 那样就太鸡肋了 STL可不存废物
至于怎么从一定位置开始 到一定位置结束啊
参见sort排序函数谢谢(因为string本质上也是一种数组)
4:char神力!
我们都知道 在读入char类型时 C++会强制只读入一个字符
所以我们可以读入三个字符 后反向输出
都四种方法了你还想怎么样 快去给我把难度打下来!
------------------------------------------------------------题解结束------------------------------------------------------------