1031:反向输出一个三位数
时间限制:
1000 ms 内存限制: 65536 KB
提交数:
44480 通过数: 26787
【题目描述】
将一个三位数反向输出,例如输入358,反向输出853。
【输入】
一个三位数n。
【输出】
反向输出n。
【输入样例】
100
【输出样例】
001
【分析】
这个问题的难点:1、如何取出各个数位上的数字。对于一个三位数,取个位数简单,除以10取余就可以。百位是最高位,可以用n/100(这是整数除法,得到的自然是个整数)。十位数字的解决办法可以考虑去掉最后一位,那十位就变个位了,那就简单了。当然也可以去掉百位再用刚才找百位的方法找到十位数了。(这里包含了一种重要的数学思想方法哟--化归)
2、要倒序输出,先输出个位数,然后十位数,最后是百位数。解决顺序问题一个很简单的方法:先用三个变量保存三个数字,顺序就变得简单了,不是吗?!
【解决方案】
根据以上分析,找出一个解决方案不难了。但比较好的方案是:先取个位,然后去年个位成一个两位数,再取个位(这时的个位相当于原来的十位),再去掉个位,得到一个一位数,那这个数就相当于原来的百位数了。这个方法的优势在于按这个方法,四位数、五位数、...、更多位数都可以解决了。
【代码展示】
#include<iostream>
using namespace std;
int main(){
int a,bw,sw,gw;
cin>>a;
bw=a/100;//百位数字
gw=a%10;//个位数字
a=a/10;//把a的个位去掉,得到只有百位数字和十位数字的两位数。十位数字现在在个位了哟
sw=a%10;//十位数字
cout<<gw<<sw<<bw<<endl;
return 0;
}
#include<iostream>
using namespace std;
int main(){
int a,bw,sw,gw;
cin>>a;
bw=a/100;//百位数字
gw=a%10;//个位数字
a=a%100;//把a的百位去掉,得到一个两位数,十位是最高位了
sw=a/10;//十位数字
cout<<gw<<sw<<bw<<endl;
return 0;
}
#include<iostream>
using namespace std;
int main(){
int a,bw,sw,gw;
cin>>a;
gw=a%10;//个位数字
a=a/10;//个位己取出,去掉个位,让十位成为新的个位
sw=a%10;//十位数字
bw=a/10;//再去掉新的个位,让原来百位成为新的个位,那这个数当然就是百位了
cout<<gw<<sw<<bw<<endl;
return 0;
}
#include<iostream>
using namespace std;
int main(){//此程序不只适用于三位数,int范围内的数均可
int a,bw,sw,gw;
cin>>a;
while(a)
{cout<<a%10;
a/=10;}
return 0;
}