题目:
将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。
给定 x = 123,返回 321
给定 x = -123,返回 -321
思路;通过取余取得最后一位 然后除以十再取最后一位(相当于往前取一位) ,用一个数保存,每次取得都乘十并加上取得的数字(相当于往前挤一位),
直至原数不能再被十整除或者反转结果已经溢出则结束循环
public class ReverseNum {
public static void main(String[] args) {
int num = -1085774335;
int c = 0;
while (num != 0) {
int temp = c; //临时记录c 用于判断是否溢出
c = c * 10 + num % 10;
num /= 10;
if(c/10 != temp) { //如果c/10和临时记录并不相等,说明已经溢出了 结束循环
c = 0;
break;
}
}
System.out.println(Long.MAX_VALUE+"反转后:" + c);
}
}