• 整数反转


    题目:https://leetcode-cn.com/problems/reverse-integer/

    题意:输入一个整数,输出它的反转数。

    如321---->123

    ----------------

    直接用数学方法转换。

    tmp = x%10;

    ans = ans *10 + tmp;

    每一步计算新值时判断ans是否溢出。

    x是正数时,溢出条件:

    1、ans> INTMAX / 10 ;

    2、 ans== INTMAX / 10 && tmp > 7(这个7 是因为 72^31 - 1的个位数,题目给出的就是一个32位有符号整数)。

    x是负数时,溢出条件:

    1、ans < INTMIN / 10;

    2、 ans == INTMIN / 10 && tmp < -8(这个-8 是因为 -8是- 2^31的个位数)。

    代码:

    Java
     1 class Solution {
     2     public int reverse(int x) {
     3         int ans = 0;
     4         while(x != 0 ) {
     5             int t = x % 10;
     6             x /= 10;        
     7             if( ans > Integer.MAX_VALUE / 10 || (ans == Integer.MAX_VALUE / 10 && t > 7))
     8                 return 0 ;
     9             if( ans < Integer.MIN_VALUE / 10 || (ans == Integer.MAX_VALUE / 10 && t < -8) )
    10                 return 0;
    11              ans = ans*10 + t;
    12         }
    13         return ans;
    14     }
    15 }

  • 相关阅读:
    Hibernate
    Mysql
    JavaWeb
    Springboot
    spring MVC
    spring
    mybatis学习
    ftp客户端封装
    win10子系统 wsl开机启动ssh服务
    eclipse 终于官方支持代码模糊提示了
  • 原文地址:https://www.cnblogs.com/hbhdhd/p/13682178.html
Copyright © 2020-2023  润新知