题目链接
这是目前为止刷过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;
}
};
来源:CSDN
作者:wofanzheng
链接:https://blog.csdn.net/wofanzheng/article/details/104108423