题目
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例:
代码
/*
* @lc app=leetcode.cn id=7 lang=cpp
*
* [7] 整数反转
*/
#include<math.h>
// @lc code=start
class Solution {
public:
int reverse(int x) {
long int y = 0;
int num = 0;
long int target = x;
if(x >= pow(2, 31) - 1 || x <= -pow(2, 31) || x == 0) return 0;
if(x < 0){
int y = reverse(-x);
return -y;
}
while(x > 0){
x = x / 10;
num ++;
}
for(int i = num; i>0;i--){
//if (target > 10)
y = y + (target % 10)* pow (10,i-1);
//else
//y = y + target % 10;
target = target/10;
if(y >= pow(2, 31) - 1 || y <= -pow(2, 31) ){
y = 0;
break;
}
}
return y;
}
};
// @lc code=end