题目不难,让你尝试将整形倒着输出,我采用的方法是利用%获得每一位的数字,然后反序构造回那个int值,可惜,中途出现了好多小错误,改了很多回,尤其需要注意输出数字的正负,以及要写出数量超过整形表示范围的处理方式。
class Solution {
public:
int reverse(int x) {
int final[16]={0},i=0,sign=1;
long long unit,result=0;
if(x<0){
sign = -1;
x = -x;
}
for(unit=10;unit<=(long long)10*(long long)x;unit*=10){
final[i]=x%unit/(unit/10);
x=x-final[i]*(unit/10);
i++;
}
i=0;
for(unit/=100;unit>=1;unit/=10){
result+=unit*final[i];
if (result>2147483647) return 0;
i++;
}
return sign*result;
}
};