题目
思路:
每次获取目标整数个位数,再每次乘以10加上最后余数达到翻转
tip:
% : 取余
/ : 取整
代码:
public static int convert(int target) {
int result = 0;
if (target > Integer.MAX_VALUE || target < Integer.MIN_VALUE) {
return 0;
}
while (target != 0) {
result = result * 10 + target % 10;
target = target / 10;
if (result > Integer.MAX_VALUE / 10 || result < Integer.MIN_VALUE / 10) {
return 0;
}
}
return result;
}
结果:
详解:
1、入参target = 321
2、结果初始值 result = 0
3、第一次循环、321%10 = 1 result = 1 target = 321/10 = 32 个位获取结束
4、第二次循环、32%10 = 2 result = 12 target = 32/10 = 3 获取除了个位数1的数即32的个位数,加上之前的个位数乘以10为结果最新值
5、第三次循环、3%10 = 3 result = 123 target = 3/10 = 0 同上
6、target !=0 条件不成立跳出循环,返回最终结果