leecode刷题学习——07整数反转


题意介绍

在这里插入图片描述


解题思路

  1. 碰到本题,第一思路应该是分解该整数。分解整数我们考虑的方法是采用取余的方式,每次数字除10取余得到末尾数字,并剔除末尾数字继续取余(剔除末尾数字的方法是:例如,当数字为2125,2125除以10的余数为5,2125-5=2120并除以10得结果为212,这就是剔除末尾数字的新的数字,并且可以将剔除的末尾数字乘以10来获取新的数字。)
  2. 第一:降解整数,取末尾数字,
  3. 第二:末尾数字*10,获得新的目标值
  4. 第三:判断目标值是否超出取值范围。

本题代码

public int reverse01(int x) {
        //目标值,因为获取的目标值可能会超出题目中要求的范围,所以我们采用long类型接收
        long ans = 0;
        //目标值不等于0,才能对其进行分解。
        while (x != 0) {
            int end = 0;
            //获得末尾的数字
            end = x % 10;
            //将数字降解,比如211,解析出1并除以10,则为21,进一步分解x.
            x = (x - end) / 10;
            //目标值=分解的数字*10+下一个分解的数字.
            ans = ans * 10 + end;
        }
        //根据题意进行判断超出范围则返回0;
        int MAX_VALUE = (int) Math.pow(2, 31) - 1;
        int MIN_VALUE = (int) (Math.pow(2, 31) - 1) * -1;
        if (ans > MAX_VALUE || ans < MIN_VALUE) {
            return 0;
        }
        return (int) ans;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值