Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
这道题其实不难,重要的是对一些特殊值进行判断。如果输入数字为超过int范围的值该如何处理。例如:1534236469,反过来会超范围,但是在计算的过程中不会提示你已经越界了。我用的是一个Long型的来保存结果,如果结果在int范围内,那么转换成int返回, 否则按题目要求返回0
代码:
public int reverse(int x) {
if(x<-2147483648 || x>2147483647 ){
return 0;
}
long res=0;
//不管有没有零
for (;x != 0;x= x/10){
res = res*10 + x%10 ;
}
if(res<-2147483648 || res>2147483647) return 0;
else return (int)res;
}