#7 Reverse Integer
反转数字。基本思路就是利用求余%和求商/两个计算。每次计算完的余在新的循环次数里面要乘以10,再加上新的余。利用商去更新每次数。
同时考虑到32bit有无溢出。C++的<stdint.h>里面定义好了INT32_MAX和INT32_MIN。当然INT64_MAX也有。
int64_t 其实就相当于long long; int32_t就是int
class Solution {
public:
int reverse(int x) {
int rev=0;
int pop;
while(x!=0)
{
pop=x%10;
x/=10;
if(rev>INT32_MAX/10|| (rev == INT32_MAX / 10 && pop > 7)) return 0;
if(rev<INT32_MIN/10|| (rev == INT32_MIN / 10 && pop < -8)) return 0;
rev=rev*10+pop;
}
return rev;
}
};