题目(英文版)
Reverse digits of an integer.
Example1: x = 123, return 321Example2: x = -123, return -321
题目(中文版)
给定一个 32 位有符号整数,将整数中的数字进行反转。
解题思路:
代码解析(代码有详细的注释,看不懂的可以在下方留言,会及时回复的):
public class ReverseNum {
public int reverse(int num){
//定义一个中间变量,用来存储每一循环后的反转值
//比如1234
//第一次循环rev为4
//第二次循环rev为43
//第三次循环rev为432
//第四次循环rev为4321
int rev = 0;
//只要输入要反转的数不为0
//比如1234
//第一次1234
//第二次循环123
//第三次循环12
//第四次循环1
while(num!=0){
//定义一个中间变量,用来存储每一循环后的反转值
//比如1234
//第一次循环rev为4
//第二次循环rev为43
//第三次循环rev为432
//第四次循环rev为4321//
int newRev = rev*10+num;
//判断是否超出int所能表示的范围
if(((newRev-num)/10)!=rev)return 0;
//将值赋给rev,以便下一次循环
rev = newRev;
num/=10;
}
return rev;
}
}