LeetCode:Reverse Integer

杀马特。学长 韩版系。学妹 提交于 2020-01-29 23:30:05

题目链接
这是目前为止刷过LeetCode里最简单的题目了,主要注意环境的存储的数字范围是[−2^31, 2^31 −1],即在计算过程中数字的范围必须在[-2147483648,2147483647]内。
AC代码:

class Solution {
public:
    int reverse(int x) {
        int tmp=x;
        int y=0;//存储翻转后的整数
        if(x==-2147483648)//排除边界值,负数的边界值的绝对值环境无法表示
            return 0;
        if(x<0)
            tmp=-tmp;//如果数字为负,将数字改为正
        while(tmp>0)
        {
            y=tmp%10+y*10;
            tmp=tmp/10;
            cout<<tmp<<" "<<y<<endl;
            if(tmp!=0)//tmp!=0表示整数还没有翻转完成
            {
                if(y>214748364||(y==214748364&&tmp>7))//如果整数翻转到还剩最后一位满足此条件,继续翻转环境将无法表示
                    return 0;
            }
        }
        if(x<0)
            return -y;
        else
            return y;
    }
};
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!