Day 1.9
整数反转
题目
代码
class Solution {
public:
int reverse(int x) {
long long sum=0,a[100],k=0,p=1;
if(x==0)return 0;
for(int i = 0;x!=0;i++){
a[i] = x % 10;
x = x / 10;
k=i;
}
for(int i = k;i>=0;i--){
sum += a[i]*p;
p*=10;
}
if(sum<-2147483648||sum>2147483647){
sum=0;
}
return sum;
}
};
结果
笔记
注意对整数取值范围的限制可用long long类型,对于整数的反转
int reverse(int x){
long long y = 0;
do{y = y*10 + x % 10;}
while (x /= 10);
更加简便,y = 10y + x%10 可将新得到的数字放到最后一位