这里使用一种较笨的方法,适合初学者理解。
主要的过程就是用取余操作得到最后一位,用除法操作得到一共有几位。具体程序如下:
// An highlighted block
class Solution {
public:
int reverse(int x) {
//取相反数
int n = 0;
long sum = 0;
int pos;
if(x<0)
pos = -x;
else
pos = x;
//得到位数和余数
vector<int> y (32,0);
for(int i = 0; pos!= 0; ++i )
{
n++;
y[i] = pos%10;
pos /= 10;
}
//得到新数
for(int j = 0; j < n; j++ )
{
sum *= 10;
sum = sum + y[j];
}
//去不去掉0
if(sum%10 == 0)
sum /= 10;
//加不加负号
if(x<0)
sum = -sum;
//排除特殊
if(sum>=2147483648||sum<-2147483648)
return 0;
return sum;
}
};