【leetcode】7. Reverse Integer(C)
阿新 • • 發佈:2018-12-14
Description:
Given a 32-bit signed integer, reverse digits of an integer.
Example1:
Input: 123 Output: 321
Example2:
Input: -123 Output: -321
Example3:
Input: 120 Output: 21
提交程式碼:
int reverse(int x) {
//int正數最大2147483647 負數最大-2147483648
int tmp=x,flag;
int i=0,x_reverse=0,len=0;
int nums[10] ;
//是個正數
if (x > 0)
{
//將這個數存到一個數組裡面
while (tmp != 0)
{
nums[i++] = tmp % 10;
tmp /= 10;
len++;
}
//看有沒有越界
if (len == 10)
{
if (nums[0] > 2) return 0;
else if (nums[0] == 2)
{
tmp = 0;
for (i = 1; i <len; i++)
tmp = tmp * 10 + nums[i];
if (tmp > 147483647 ) return 0;
}
}
tmp = 0;
for (i = 0; i <len; i++)
tmp = tmp * 10 + nums[i];
return tmp;
}
//是個負數
else
{
while (tmp != 0)
{
nums[i++] = -1*(tmp % 10);
tmp /= 10;
len++;
}
//看有沒有越界
if (len == 10)
{
if (nums[0] > 2) return 0;
else if (nums[0] == 2)
{
tmp = 0;
for (i = 1; i <len; i++)
tmp = tmp * 10 + nums[i];
if (tmp > 147483648) return 0;
}
}
tmp = 0;
for (i = 0; i <len; i++)
tmp = tmp * 10 + nums[i];
return -1 * tmp;
}
}
執行結果: