整数反转
题目描述:
将一个 32 位的有符号整数每位上的数字进行反转。
注意:
32 位的有符号整数其数值范围为 [−231, 231 − 1],如果反转后整数溢出那么就返回 0。
示例 1:
输入: 135
输出: 531
示例 2:
输入: -16
输出: -61
示例 3:
输入: 320
输出: 23
思路:
采用取余的方法获取个位上的数字,然后加给一个长整型变量,每次循环后32 位有符号整数缩小10倍以去掉末位,长整型变量扩大10倍,最后一步判断得到的反转整数是否超出32 位有符号整数的数值范围,如果是则返回0.
代码
public class Solution {
public int Reverse(int x) {
long result=0;
while(x!=0)
{
int k=x%10;
result=result*10+k;
x=x/10;
}
if (result > int.MaxValue || result < int.MinValue)
{
result = 0;
}
return (int)result;
}
}