Contents
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
* Reverse digits of an integer.

* Example1: x = 123, return 321
* Example2: x = -123, return -321

* If the integer's last digit is 0, what should the output be? ie, cases such
* as 10, 100.

* Did you notice that the reversed integer might overflow? Assume the input
* is a 32-bit integer, then the reverse of 1000000003 overflows. How should
* you handle such cases?

* Throw an exception? Good, but what if throwing an exception is not an
* option? You would then have to re-design the function (ie, add an extra
* parameter).
*/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//注意:前导0和溢出的情况
//x % 10 的结果会带上x的符号
//溢出则返回负数
public class ReverseInteger {

public int reverse(int x) {
int result = 0;
while (x != 0) {
result = 10 * result + x % 10;
x /= 10;
}
return result;
}
}
Contents