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