题目描述:
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
解题思路:
对如待翻转的整数x,可以通过循环,从个位开始取出每一位的数加入到sum当中。每次通过x/10来去除已经使用过的数。
代码如下:
int reverse(int x){
long long int sum = 0;
int a = 0;
for(x;x!=0;){
a = x%10;
sum = sum*10+a;
x = x/10;
}
if(sum>=pow(-2,31)&&sum<pow(2,31)){
return sum;
}else{
return 0;
}
}
这里要注意一点,sum应该定义为长长整型,因为如果定义为整型或者长整型,就无法表示溢出的数,这样在oj系统中就会报错。