题目
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
解答
思考
System.out.println(Integer.MAX_VALUE);//打印最大整数:2147483647
System.out.println(Integer.MIN_VALUE);//打印最小整数:-2147483648
超出范围1)不可以赋值2)计算不正确,所以超出直接return 0。
源码
public class ReverseInteger {
public static void main(String args[]){
// int x = -2147483648; //超出范围
ReverseInteger reverseInteger = new ReverseInteger();
System.out.print(reverseInteger.reverse(x));
}
public int reverse(int x) {
int flag = x>0?1:-1;
x = Math.abs(x); //超出范围,直接abs还是-2147483648,直接return 0。
int y = 0;
long count = 0;
while (x > 0) {
y = x % 10;
count = count * 10 + y;
x = x / 10;
if(count>Integer.MAX_VALUE){
return 0;
}
}
return (int)count*flag;
}
//public int reverse(int x) {
// int sign=x<0?-1:1;
// x=Math.abs(x);
// long r=0;
// for ( ; x>0; x=x/10) {
// r= r*10+x%10;
// if (r>Integer.MAX_VALUE)
// return 0;
// }
// return (int)r*sign;
//}
}