简单题,但是注意边界。超过了32位int的最大值应该返回0。
使用INT_MIN和INT_MAX
INT_MAX 是2147483647 定义为 #define INT_MAX 2147483647
INT_MIN是-2147483648 定义为 #define INT_MIN (-INT_MAX -1)
class Solution {
public:
long long reverse(long long x) {
long long ans=0;
int fu=0,t;
if(x==0)
return x;
if(x < 0)
{
fu=1;
x=-x;
}
while(x%10 == 0)
x/=10;
while(x)
{
t=x%10;
x/=10;
ans=ans*10+t;
}
if(fu==1)
ans=-ans;
if(ans >= INT_MIN && ans <= INT_MAX)
return ans;
else
return 0;
}
};