让整数进行翻转,比如给出整数123,然后翻转成321,如何实现呢?
其中一个方法是通过求余数求商法进行操作。
public class Solution {
//反转整数的方法
public int reverse(int x) {
//定义两个变量,2防止结果溢出
long temp=x;
long result=0;
while(temp!=0){
result=result * 10+ temp%10;
tmp = tmp / 10;
}
// 溢出判断
if (result < Integer.MIN_VALUE || result > Integer.MAX_VALUE) {
result = 0;
}
return (int) result;
} }
注:
int 2字节(有的编译器是4字节) ,范围,-2的15次方到+2的15次方减1(字节不同范围不同)
long 4字节(有的编译器是8字节) 范围 -2的31次方到+2的31次方减1(字节不同范围不同)
所以要考虑传入数字会溢出的问题。
Integer.MAX_VALUE + 1 = Integer.MIN_VALUE