颠倒整数
给定一个 32 位有符号整数,将整数中的数字进行反转。
示例 1:
输入: 123 输出: 321
示例 2:
输入: -123 输出: -321
示例 3:
输入: 120 输出: 21
注意:
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。
解题思路:
先定义一个变量re赋值为0,准备用来存储反转后的数字。
对传入的数字取绝对值产生一个新的数字c。
对这个新的数字进行循环,每次对re乘10然后加上c对10取余,再对c除以10.
直到c小于等于0时循环结束.
对形参判断,如果形参为正数则直接返回re,否则返回re的负数形式.
代码如下:
public static int reverse(int x) {
int re=0;
int c=Math.abs(x); //取绝对值
while(c>0){ //遍历循环
if(re<-214748364 || re>214748364){ // 当re超过上限的时候,按题目要求返回0
return 0;
}
re*=10;
re+=c%10;
c/=10;
}
if(x>0){ //进行判断 返回正或者负数
return re;
}
else{
return 0-re;
}
}