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;
        }
    }
    
  • 相关阅读:
    linux usb 驱动详解
    md5sum.c, md5.c, md5.h
    安装 Kali Linux 后需要做的 20 件事
    Readprocessmemory使用方法
    在Centos下安装matlab
    PE文件简单介绍
    MATLAB中导入数据:importdata函数
    数据交换工具Kettle
    编写你自己的单点登录(SSO)服务
    AVL树
  • 原文地址:https://www.cnblogs.com/itjiangpo/p/14181305.html
Copyright © 2011-2022 走看看