先上题(来源于LeetCode)
就很简单的题,初始新数为0,直接原数对10取余得到尾数,原数除以10消去已得到的尾数,然后新数乘以10与尾数相加,一直重复至原数最高位。但是垃圾的我怕忘记数值约束的写法。。代码如下
class Solution {
public:
int reverse(int x) {
int sum=0;
while(x)
{
if(sum > INT_MAX/10 || sum < INT_MIN/10) //溢出
return 0;
sum=sum*10+x%10;
x/=10;
}
return sum;
}
};