题目:
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123 输出:321
思路:通过%获取余数的方式从最末尾来获取数。
long一个res变量来存储
(int型:32位整型,取值范围为-2^31 ~ (2^31 - 1) .
long:在32位系统是32位整型,取值范围为-2^31 ~ (2^31 - 1);在64位系统是64位整型,取值范围为-2^63 ~ (2^63 - 1)
long long:是64位的整型,取值范围为-2^63 ~ (2^63 - 1)。)
p.s.最开始忘记判断res的取值范围 导致出现问题
代码:
class Solution {
public:
int reverse(int x) {
long res = 0;
do{
res = res * 10 + x % 10;
}while(x /= 10);
if(res < -pow(2,31) || res > pow(2,31) - 1)
{
return 0;
}
return res;
}
};