• 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;
    }
    方案四:方案三用循环实现


  • 相关阅读:
    CS Academy Round #65 Count Arrays (DP)
    Codeforces Gym 101194C Mr. Panda and Strips(2016 EC-Final,区间DP预处理 + 枚举剪枝)
    Codeforces 915F Imbalance Value of a Tree(并查集)
    HDU 4866 Shooting (主席树)
    玲珑杯 Round #5 Problem E Tetration (枚举 + 欧拉公式)
    Codeforces 906D Power Tower(欧拉函数 + 欧拉公式)
    第十三届北航程序设计竞赛决赛网络同步赛 B题 校赛签到(建树 + 打标记)
    TopCoder SRM 722 Div1 Problem 600 DominoTiling(简单插头DP)
    Codeforces 901C Bipartite Segments(Tarjan + 二分)
    supervisor安装与使用
  • 原文地址:https://www.cnblogs.com/wendcn/p/12557648.html
Copyright © 2020-2023  润新知