1 public int reverse2(int x) { 2 double ans=0; 3 int flag=1; 4 if(x<0){ 5 flag=-1; 6 } 7 x=x*flag; 8 while(x>0) { 9 ans = 10 * ans + x % 10; 10 x = x / 10; 11 } 12 if(ans>Integer.MAX_VALUE){//判断是否溢出 13 System.out.println(ans); 14 return 0; 15 } 16 else 17 return (int)(flag*ans); 18 19 }
如上所示,因为double范围比int大很多,所以使用double来判断是否溢出很简单