给定一个 32 位有符号整数,将整数中的数字进行反转。
示例 1:
输入: 123 输出: 321
示例 2:
输入: -123 输出: -321
示例 3:
输入: 120 输出: 21
注意:
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。
public class Solution {
public int Reverse(int x) {
int[] nums=new int[32];
int i = 0;
long t = 0;
int flag = 0;
if (x < 0)
{
x = -x;
flag = 1;
}
while (x>0)
{
nums[i] = x%10;
x= x/ 10;
i++;
}
if (nums[0] != 0&&flag==0)
{
for (int j=0;j<i;j++)
{
t= t * 10 + nums[j];
}
}
else if(nums[0] == 0 && flag == 0)
{
for (int j = 1; j < i; j++)
{
t = t * 10 + nums[j];
}
}
else if (nums[0] == 0 && flag == 1)
{
for (int j = 1; j < i; j++)
{
t = t * 10 + nums[j];
}
t= -t;
}
else if (nums[0] != 0 && flag == 1)
{
for (int j = 0; j < i; j++)
{
t = t * 10 + nums[j];
}
t=-t;
}
if ((t > Math.Pow(2, 31) - 1) || (t < (-1) * Math.Pow(2, 31)))
{
return 0;
}
else
{
return (int)t;
}
}
}