题目
解决这个问题的三要素:
- 判断正负,将负数当做正数处理
int neg=x<0?-1:1;
//neg是一个状态标志位,将它与原数相乘一定得到正数
- 取出x值得个位,十位
个位:x%10
十位:x/10
- 判断溢出并返回0
if(n/10!=ret)
return 0;
class Solution {
public int reverse(int x) {
if(x==Integer.MIN_VALUE)
return 0;
int neg=x<0?-1:1;
x*=neg;
int ret=0;
while(x>0){
int n=ret;
n*=10;
n+=x%10;
x/=10;
if(n/10!=ret) return 0;
ret=n;
}
return ret*neg;
}}