整数逆序是否溢出:
示例:
public static int reverse(int x) {
int result = 0;
int dig = 0;
int temp = 0;
while(x != 0){
dig = x % 10;
temp = dig + result * 10;
if((temp - dig)/10 != result){
return 0;
}
result = temp;
x = x / 10;
}
return result;
}
说明:
- 在进行个位数拼接的时候先用temp表示中间值temp = dig + result * 10;
- 求得之后再进行逆向运算(temp - dig)/10;
- 如果逆向运算的值不等于原来的值,说明求和的结果溢出改变了;