zoukankan      html  css  js  c++  java
  • 数字的逆序

    问题描述:

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

    示例 1:

    输入: 123
    输出: 321


    注意:

    假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。
    [-2147483648,2147483647]
    请根据这个假设,如果反转后整数溢出那么就返回 0。

    思想:我个人在做这个题的时候,我首先想到的是统计输入的数字的个数,它总共有多少位数?它是正的还是负的?

    最后就是一般的计算

    1>     输入x,为了消除正负号,我们第一步是将数字取绝对值,int  y  =  Math.abs(x)  

    2>     将y转换成字符串,计算字符串的长度,那么字符串长度就是数字的位数

    3>     用一般的方法将数字逆转

    下面我们用一个方法实现:

    public int reverse(int x){

      //将x先赋给t最后判断输入x的正负号

      int t = x;

      //取绝对值

      int y = Math.abs(x);

      String s = (String) (x+"");

      int sum = 0;

      for(int i = 0;i<s.length();i++){

        sum  += y%10*Math.pow(10,s.length() - i - 1);

        y = y/10;

      }

      if(-sum<Integer.MIN_VALUE||sum>Integer.MAX_VALUE-1)
        return 0;
      if(t>=0)
        return sum;
      else
        return -sum;

    }

    以上代码就是这个题的解题代码

    这个题也可以用BigInteger类加String类来解决,不过我觉得有点麻烦

     还是写出来吧

    public int reverse(int x) {

      String s = (String) (x+"");
      if(x<0) {
        s = s.substring(1);
      }

      char[] buff = s.toCharArray();
      int start = 0;
      int end = buff.length - 1;
      while(start<end) {
        char temp = buff[start];
        buff[start] = buff[end];
        buff[end] = temp;
        start++;
        end--;
      }
      BigInteger bi1 = new BigInteger("2147483647");
      BigInteger bi2 = new BigInteger("-2147483648");
      if(t>0){
        BigInteger bi = new BigInteger(new String(buff));
        if(bi.compareTo(bi1)==1)
          return 0;
        return bi.intValue();
      }
      else {
        BigInteger bi = new BigInteger(new String("-")+new String(buff));
        if(bi.compareTo(bi2)==-1)
          return 0;
        return bi.intValue();
      }
    }

  • 相关阅读:
    Lua/AHK socket tcp telnet
    Lua wait sleep
    Lua io.open read write seek flush setvbuf append
    stream file 文件 数据流
    AHK通讯 CMD Lua IPC
    零散 Lua/Excel/''/iup
    Windows Program File(x86) 路径 环境变量
    条件正则过滤筛选 V2
    条件正则过滤筛选 V1
    python导包出现的问题
  • 原文地址:https://www.cnblogs.com/du001011/p/10018253.html
Copyright © 2011-2022 走看看