LeetCode:反转整数(C语言版)
int reverse(int x){
int num = 0;
long sum = 0;
if (x>=INT_MAX || x<=INT_MIN) return 0;
while(x != 0){
num = x % 10;
x = x / 10;
if(x != 0){
if((sum + num) * 10 >= INT_MAX || (sum + num) * 10 <= INT_MIN) return 0;
else{
sum = (sum + num) * 10;
}
}
else{
sum = sum + num;
}
}
return sum;
}
- 主要思想就是将整数多次取余然后再不断*10,最后当x取整数部分等于0的时候,直接加上余数到待返回数据中。
- 要注意的是整数的范围,在首次进入循环之前要判断是否超出整数范围,然后在*10的时候也要判断是否超出范围。