判断数据是否溢出
public int reverse(int x){
int size=0;
int result=0;
boolean boo=true;
if (x==0){
return 0;
}
int temp=x;
while (temp!=0){
temp/=10;
// 注意:这个判断不能在while循环之前,因为可能存在溢出问题
if (temp<0){
temp=-temp;
boo=false;
}
size++;
}
int[]arr=new int[size];
for (int i=0;i<size;i++){
arr[i]=Math.abs(x%10);
x/=10;
}
int num=1;
for (int i=size-1;i>=0;i--){
result+=arr[i]*num;
num*=10;
}
// 判断数据是否溢出。
// 若没有溢出,最后数据的个位数应该是变换之前数据的最高位
// 若不是,就说明数据溢出了,直接返回0
if (arr[size-1]!=result%10){
return 0;
}
return boo?result:(0-result);
}
// 判断数据是否溢出。
// 若没有溢出,最后数据的个位数应该是变换之前数据的最高位
// 若不是,就说明数据溢出了,直接返回0
if (arr[size-1]!=result%10){
return 0;
}
浙公网安备 33010602011771号