Task:
思路:
主要是处理溢出,就是时时刻刻我们新的反转后的数组num要在[-2的31次方, 2的31次方- 1]这个区间之中,多以每次都要进行溢出的判断,如果溢出就返回0,没有溢出那就继续操作来翻转整数!
代码:
class Solution {
public:
int reverse(int x) {
int num = 0;
while(x){ //只要x还是int类型的数,那就继续进行循环,知道最后一步变为小数位置,
if (num>INT_MAX/10 || num < INT_MIN/10) return 0; // 如果越界溢出那就返回0
num = num * 10 + x % 10; // 构造翻转后的num, 每次都加一位
x = x / 10; // 对x进行变化,推进循环的进行
}
return num;
}
};