7.整数反转

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

示例 1: 输入: 123;输出: 321

示例 2:输入: -123;输出: -321

示例 3:输入: 120;输出: 21

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

解答:

public static int reverse(int x) {
        int rs=0;
        while (x != 0) {
            //从个位依次得到数值
            int num=x % 10;
            x = x / 10;
            //从左到右运算符 
            if (rs>Integer.MAX_VALUE/10||(rs==Integer.MAX_VALUE/10&&num>7)) {
                return 0;
            }
            if (rs<Integer.MIN_VALUE/10||(rs==Integer.MIN_VALUE/10&&num<-8)) {
                return 0;
            }
            //这样求和更为简单 【相比于原数逆序输入到集合,集合从最后再求和】
            //边获取原数的个位数,边求和【而不是全部逆序后,边获取逆序数的个位数,边求和】
            rs=rs*10+num;
        }
        return 0;
    }

注意:

1.需要边获取原数的个位数,边求和。
2.求和与判断是否溢出的先后顺序。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目描述 题解 取巧法 弹出和推入数字 & 溢出前进行检查 思路:我们可以一次构建反转整数的一位数字。在这样做的时...
    SmallRookie阅读 2,761评论 0 0
  • 给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 1: 输入: 123输出: 321 示例 2: 输入...
    追云的帆阅读 1,703评论 0 0
  • ————1———— 我失眠了。 我躺在床上翻来覆去,浑身不自在。 我看到她趴在桌子上,耳边...
    可可布兜i阅读 2,713评论 0 0
  • 前年部门里来了一批新员工,初入职场,所有新员工还算是表示出职场应有的情商,算不上主动,但交代的事情总算还是能够去按...
    沉睡七年的蝉阅读 4,282评论 0 7
  • 奶奶能唠叨一个小时不停,一段话翻来覆去的讲。就不停的说,我都快会背了,可怕。 从店里回家发现没拿...
    洱宸阅读 1,027评论 0 0