Problem: 7. 整数反转
文章目录
思路
- 运算部分
c
while(x > 0) {
y += x % 10;
y *= 10;
x /= 10;
}
y /= 10;
- 对于大于32位的数要用
long int
类型的变量保存 - 用pow算-2的31次方和2的31次方-1。
解题方法
由思路得
Code
c
int reverse(long int x){
long int y = 0, flag = 1;
if(x < 0) {
x *= -1;
flag = 0;
}
while(x > 0) {
y += x % 10;
y *= 10;
x /= 10;
}
y /= 10;
if(y < (long)pow(-2, 31) || y > (long)pow(2, 31)-1) return 0;
else if(!flag) y *= -1;
return y;
}
结果
