zoukankan      html  css  js  c++  java
  • 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;
    }
    方案四:方案三用循环实现


  • 相关阅读:
    今天开通我的博客
    在ArcGIS中,利用“行政单元面积权重法”实现人口数据格网化
    ArcGIS 下的水文分析
    常用计数器的verilog实现(binary、gray、onehot、LFSR、环形、扭环形)
    简单组合逻辑电路的verilog实现(包括三态门、38译码器、83优先编码器、8bit奇偶校验器)
    乘法器的verilog实现(并行、移位相加、查找表)
    简单时序逻辑电路的verilog实现,包括D触发器、JK触发器、锁存器、寄存器、
    简单ALU(算术逻辑单元)的verilog实现
    ubuntu下安装virtualbox 错误及解决办法
    C++单例模式对象的控制释放分析
  • 原文地址:https://www.cnblogs.com/wendcn/p/12557648.html
Copyright © 2011-2022 走看看