后备知识:
1.long long 表示的是64bit
int 表示的是32bit
2.INT_MIN:int取值范围内的最小值;INT_MAX:int取值范围内的最大值
32位的int型的取值是2147483647 到 -2147483648,但是,在C/C++语言中,你不能直接使用 -2147483648 来代替最小负数,因为它不是一个数,而是一个表达式。表达式是:“对正数2147483648取负”,所以,2147483648已经溢出了。这就是为什么INT_MIN总是定义成 (-INT_MAX - 1) 的原因。
问题描述:
将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。
样例
给定 x = 123
,返回 321
给定 x = -123
,返回 -321
C++代码如下:
class Solution {
public:
/**
* @param n the integer to be reversed
* @return the reversed integer
*/
int reverseInteger(int n) {
// Write your code here
long long res = 0;
while(n != 0) {
res = res * 10 + n % 10;
n /= 10;
}
return (res < INT_MIN || res >INT_MAX) ? 0 : res;
}
};