题前科普:
1.一个整数%10=个位
2.一个整数/10=去除个位后的部分
3.num =num*10+x能将个位,十位…凑成一个多位数
4.上面操作即使是负数也能做,不用顾虑太多。
题目:反转整数,不能转化成字符串操作。
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
代码:
class Solution {
public int reverse(int x) {
long temp = 0;
while(x != 0)
{
temp = temp*10 +x%10;
if(temp > Integer.MAX_VALUE || temp < Integer.MIN_VALUE){
return 0;
}
x/=10;
}
return (int)temp;
}
}