class Solution {
public:
int reverse(int x) {
// vector<int> v;
int flag=0,a;
long ret=0;
if(x<0)
{
flag=1;
x=0-x;
}
do {
a=x%10;
// v.push_back(a);
ret=ret*10+a;
x=x/10;
}
while(x);
if(ret > 2147483647 || (-1*ret > 2147483648)) {
return 0 ;
}
else if(flag==1) return ret*(-1);
else return ret;
}
public:
int reverse(int x) {
// vector<int> v;
int flag=0,a;
long ret=0;
if(x<0)
{
flag=1;
x=0-x;
}
do {
a=x%10;
// v.push_back(a);
ret=ret*10+a;
x=x/10;
}
while(x);
if(ret > 2147483647 || (-1*ret > 2147483648)) {
return 0 ;
}
else if(flag==1) return ret*(-1);
else return ret;
}
};
注意整数大小,int型为32位;-2的32次方到2的32次方-1.
并且逆序求和的时候类似于多项式表达,应该用从前往后叠加sn*x+an;