您的位置:首页 > 其它

7. Reverse Integer

2016-06-05 10:06 204 查看
Reverse digits of an integer.

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

class Solution {

public:

    int reverse(int x) {

        int flag;

        if(x<0)  

        {

            flag=1;

            x=-x;

        }

        

       long long int res=0;

       while(x>0)

       {

           int temp=0;

           temp=x%10;

           

           res=res*10+temp;

           x=x/10;

       }

       if(res>INT_MAX)

       {

           return 0;

       }

       if(flag==1)

          res=-res;

       return res;

      

    }

};

注意问题

1、一个整数以1开头9结尾,没有越界,但是反过来就越界了,所以要考虑越界问题

2、中间接收值得时候要定义一个比较大的数来接收反转过来的值

3、16位int原码:0111,1111,1111,1111即32767int型的范围是-32768~32767  32位min:-2147483648  max:2147483647

4、INT_MAX可表示int最大值

5??## ***while(x!=0)不对,while(x>0)就对,不明白为什么***一个int的数/之后,最后肯定等于0啊??提示 32位最小测试时错误,越界?原码补码?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: