**Reverse digits of an integer.**

**Example1: x = 123, return 321**

**Example2: x = -123, return -321**

**Have you thought about this?****Here are some good questions to ask before coding. Bonus points for you if you have already thought through this!**

**If the integer’s last digit is 0, what should the output be? ie, cases such as 10, 100.**

**Did you notice that the reversed integer might overflow? Assume the input is a 32-bit integer, then the reverse of 1000000003 overflows. How should you handle such cases?**

**Throw an exception? Good, but what if throwing an exception is not an option? You would then have to re-design the function (ie, add an extra parameter).**

C++:

01 int reverse(int x)

02 {

03 int sign=1;

04 if(x<0){

05 sign=-1;

06 x=-x;

07 }

08 int y=0;

09 while(x!=0){

10 int t=x%10;

11 y=y*10+t;

12 x=(x–t)/10;

13 }

14 return sign*y;

15 }

02 {

03 int sign=1;

04 if(x<0){

05 sign=-1;

06 x=-x;

07 }

08 int y=0;

09 while(x!=0){

10 int t=x%10;

11 y=y*10+t;

12 x=(x–t)/10;

13 }

14 return sign*y;

15 }

Advertisements