整数反转

题目:

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

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

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

示例 1:

复制代码
输入:x = 123
输出:321

示例 2:

复制代码
输入:x = -123
输出:-321

示例 3:

复制代码
输入:x = 120
输出:21

示例 4:

复制代码
输入:x = 0
输出:0

思路:

题目很简单,一个简单的数字反转问题,关键问题在于32位的溢出管理,首先我们要知道32位整数的最大值和最小值,最大值为2147483647,最小值为-2147483648,所以我们只需要在算的时候往里面算,最后判断这个数是不是超出范围即可。

代码实现:

复制代码
int reverse(int x){
    int num=0;
    while(x/10){
        num=x%10+num*10;
        x/=10;
    }
    if(num>INT_MAX/10||(num==INT_MAX/10&&(x>7))){
        return 0;
    }else if(num<INT_MIN/10||(num==INT_MIN/10&&(x<-8))){
        return 0;
    }else{
        return num*10+x;
    }
}
相关推荐
云析赢指标公式网44 小时前
文华WH6布林轨道均线强弱共振指标公式
前端·算法
luj_17684 小时前
一线一区一变破解人盯人防守密码
开发语言·网络·c++·经验分享·算法
Wang's Blog5 小时前
Java框架快速入门: Spring Security+OAuth2之字段验证与自定义验证注解实战
java·算法·spring
带多刺的玫瑰5 小时前
Leecode#29刷题之两数相除
java·python·算法
smj2302_796826525 小时前
解决leetcode第4017题数组中的峰值II
python·算法·leetcode
午彦琳5 小时前
2026.9.9
数据结构·算法·leetcode
luj_17685 小时前
中锋卡位与开放线博弈
c语言·开发语言·网络·经验分享·算法
洋不写bug5 小时前
二叉树(四)经典算法题目解析,公共祖先,二叉树构造,非递归遍历
数据库·算法·二叉树·二叉树构造·公共祖先
hansang_IR5 小时前
【题解】P4454 [CQOI2018] 破解D-H协议
c++·算法·密码学·数论
梓䈑5 小时前
【动态规划系列】路径问题、子数组 和 子序列问题、背包问题
c++·算法·动态规划