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;
}