reverseinteger

Given a 32-bit signed integer,reverse digits of an integer.

Example 1:

1
2
Input: 123
Output: 321

Example 2:

1
2
Input: -123
Output: -321

Example 3:

1
2
Input: 120
Output: 21

Note:

function returns 0 when the reversed integer overflows.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

#include <limits.h>
using namespace std;
int (int x)
{
long long sum = 0;
if( x/10 == 0) {
return x;
}
else {
long long m = (x%10);
long long n = x/10;
while(n /= 10)
m *= 10;
sum = m + reverse(x/10);
}
return (sum < INT_MIN || sum > INT_MAX) ? 0 :sum;
}

int main()
{
cout<<reverse(1234)<<endl;
return 0;
}

Output: 4321

参考自:

  1. https://leetcode.com/problems/reverse-integer/discuss/4057/
  2. http://bbs.csdn.net/topics/390741045?page=1