
功能函数
#include <stdio.h>
#include <limits.h>int reverse(int x) {int rev = 0;while (x != 0) {// 获取末位数字(自动处理负数)int pop = x % 10;x /= 10;// 正数溢出检查if (rev > INT_MAX/10 || (rev == INT_MAX/10 && pop > 7))return 0;// 负数溢出检查if (rev < INT_MIN/10 || (rev == INT_MIN/10 && pop < -8))return 0;// 构建反转数rev = rev * 10 + pop;}return rev;
}
测试代码
int main() {// 测试用例printf("%d\n", reverse(-123)); // -321printf("%d\n", reverse(1200)); // 21printf("%d\n", reverse(0)); // 0printf("%d\n", reverse(2147483647)); // 0(溢出)return 0;
}