力扣试题-7.整数反转

太久没有更新了,现在开学了,开始更新了;

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。

遇到这一道题:

我一开始就去动手去做,导致一件事情,编译出错,因为溢出问题

因为这道题有一个很关键的一个东西,环境不允许存储64位整数

分析一下,为什么会有溢出问题;

我百度了一下:

计算机中,当要表示的数据超出计算机所使用的数据的表示范围时,则产生数据的溢出。

溢出原因
数据类型超过了计算机字长的界限就会出现数据溢出的情况。导致内存溢出问题的原因有很多,

这个时候就需要判断:如果出现数据溢出,就说明了这个数据无法计算:

也就是说

他们在进行运算的时候,有一个数据出现了乱码:

class Solution {
    public int reverse(int x) {
        
        if(x==0) {
            return 0;

        }
        int y=x>0?x:-x;//此时y代表的值是x的绝对值;
        int num;
        int res=0;
       while(y!=0) {
           num = y%10;//最尾部的数
           int temp = res;
           res = res*10 + num;
           y = y/10;
           if(res/10!=temp) {//这里就是判断数据是否出现乱码的判断条件
               return 0;
           }
       }
      
       return x>0?res:-res;

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值