题目意思:int数字反转
考虑:越界问题
class Solution {
public:
int reverse(int x) {
long ans=;
while(x){
ans=ans*+x%;
x=x/;
}
return (ans > INT_MAX || ans < INT_MIN)? : ans;
}
};
ps:leetcode中long比int要长,可是visual c++中long和int取值范围一样
因而有了下面这种我认为更好的代码
class Solution {
public:
int reverse(int x) {
int ans=;
while(x>=||x<=-){
ans=ans*+x%;
x=x/;
}
if(ans>INT_MAX/||(ans==INT_MAX/&&x>INT_MAX%))
return ;
if(ans<INT_MIN/||(ans==INT_MIN/&&x<INT_MIN%))
return ;
return ans*+x%;
}
};