int reverse(int x) {
int newNum = 0;
while (x != 0) {
if (newNum > INT_MAX / 10 || newNum < INT_MIN / 10) {
return 0; // 溢出处理
}
int digit = x % 10;
newNum = newNum * 10 + digit;
x /= 10;
}
return newNum;
}
定义一个反转后的int并初始化为0
进行一个while循环
如果反转后的这个数超过了上下限就直接返回0
这里INT_MAX / 10 是因为接下来newNum要 * 10 所以这里先进行判断
接下来如果没有超过限制就加上x的尾项
然后while循环一下
最后就得到了反转的数(因为取模运算可以取到正负)
INT_MAX和INT_MIN 来自<limits.h>函数库
#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX - 1)