zoukankan      html  css  js  c++  java
  • 牛客-反转数字

    题目描述

    将给出的整数x翻转。
    例1:x=123,返回321
    例2:x=-123,返回-321

    你有思考过下面的这些问题么?
    如果整数的最后一位是0,那么输出应该是什么?比如10,100
    你注意到翻转后的整数可能溢出吗?假设输入是32位整数,则将翻转10000000003就会溢出,你该怎么处理这样的样例?抛出异常?这样做很好,但是如果不允许抛出异常呢?这样的话你必须重新设计函数(比如添加一个额外的参数)。

    输入
    -123
    输出

    -321

    代码实现

    import java.util.*;
    public class Solution {
        /**
         * 
         * @param x int整型 
         * @return int整型
         */
        public int reverse (int x) {
            // write code here
            int end = 1,res=0;
            while(x!=0){
                end=x%10;//取最后一位
                //因为下一步需要*10加上余数所以需要提前判断,防止越界。
                //如果x是正数,但是不能大于Integer的最大值,如果Integer是负数,不能小于Integer的最小值。越界都返回0
                if(x>0&&((Integer.MAX_VALUE-x%10)/10<res)||x<0&&((Integer.MIN_VALUE-x%10)/10>res)){
                    return 0;
                }
                res=res*10+end;
                x=x/10;
            }
            return res;
        }
    }
    
  • 相关阅读:
    软件工程概论
    软件工程概论
    JAVA
    JAVA
    C#字符补位
    C#绘图双缓冲
    C#中IP地址转换为数值的方法
    C#并行编程-并发集合
    C#委托
    C#事件(event)解析
  • 原文地址:https://www.cnblogs.com/dataoblogs/p/14121848.html
Copyright © 2011-2022 走看看