• LeetCode:7. Reverse Integer(Easy)


    题目要求:将给出的整数进行逆序输出

    注意:整数的最大范围-2147483648~2147483647,当翻转后的数超出范围后返回0

    思路:对给出的整数除以10,取余和取整;然后对取整部分继续取余和取整,同时将前一次取余的部分乘10再加上该次取余...直至余数为零

     1 public class Solution {
     2 
     3     public static void main(String[] args) {
     4         Solution sol = new Solution();
     5 //        System.out.println(t.reverse(-123));
     6 //        System.out.println(t.reverse(1000));
     7 //        System.out.println(t.reverse(123));
     8         System.out.println(sol.reverse(1324565656));
     9     }
    10 
    11     public int reverse(int x) {
    12         // 单独处理MIN_VALUE,因为最大范围和最小范围绝对值差1
    13         if (x == Integer.MIN_VALUE)
    14             return 0;
    15         int num = Math.abs(x);
    16         int result = 0;
    17         while (num != 0) {
    18             // 判断是否超出MAX_VALUE
    19             if (result > (Integer.MAX_VALUE - num % 10) / 10)
    20                 return 0;
    21             result = result * 10 + num % 10;
    22             num = num / 10;
    23         }
    24         // 最后判断正负号
    25         return x > 0 ? result : -result;
    26     }
    27 }
  • 相关阅读:
    读《大道至简》第二章有感
    《大道至简》读后感
    JAVA课后作业
    大道至简第三章观后感
    JAVA作业之两数的加减乘除
    JAVA作业之动手动脑
    第一次Java实验
    大道至简第二章观后感
    大道至简第一章观后感
    Django__admin的配置
  • 原文地址:https://www.cnblogs.com/huiAlex/p/8035028.html
Copyright © 2020-2023  润新知