反向输出一个三位数(要保留前导 0)
两种思路:
思路一
分别输出三个数字,即将原来的“abc”以“c”“b”“a”的顺序输出。
c位:这是原数的个位,将原数除以10得到的商即为c的数值。
b位:这是原数的十位,将原数除以100得到的商即为由bc组成的二位数的数值。此时再将这个值除以10得到的余数即为b的数值。
a位:这是原数的百位,将原数除以100得到的余数即为a的数值。
(这种思路不用过多的考虑保留前导0的约束。)
思路二
只输出一个数字,即将“abc”以“cba”的样式输出。
我想到的这个思路只是在思路一的基础上多加几部,比思路一繁琐一些。有更好的想法欢迎大家和我一起讨论。
在思路一的基础上,要得到的数值=c100+b10+a
(此时需要考虑到前导0的问题)
代码展示
思路一代码
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int s_1;
s_1=n%10;
int s_2;
s_2=n/10%10;
int s_3;
s_3=n/100;
cout<<s_1<<s_2<<s_3;
return 0;
}
思路二代码
#include<iostream>
#include <iomanip>
using namespace std;
int main()
{
int n;
cin>>n;
int s_1;
s_1=n%10;
int s_2;
s_2=n/10%10;
int s_3;
s_3=n/100;
int answer;
answer=s_1*100+s_2*10+s_3;
cout.setf(ios::right); //设置对齐方式为右对齐
cout.fill('0'); //设置填充方式,不足位补0
cout.width(3); //设置宽度为2,只对下条输出有用
cout<<answer;
return 0;
}