题目描述:
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
解题思路:
原本这题就是一个普通的整数处理,结果因题目要求不能用long long,一直卡在判断越界条件那里。
看一眼别人的题解,简简单单一个/10就解决了越界判断变量溢出的问题。
int reverse(int x) {
int y = 0;
while(x){
if(y>INT_MAX/10 || y<INT_MIN/10 ) //直接*10判断会溢出
return 0;
y = y*10 + x%10;
x /= 10;
}
return y;
}