1031:反向輸出一個三位數


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;
}
方案四:方案三用循環實現

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM