整数反转
题目:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
- 示例 1:
- 输入: 123
输出: 321
- 输入: 123
- 示例 1:
- 输入: -123
输出: -321
- 输入: -123
- 示例 1:
- 输入: 120
输出: 21
- 输入: 120
思路:
例如:x=123
设结果为res=0,暂时的结果为newres;
第一步:先求出个位:t=x%10=3,newres=res10+t=3;
x=x/10=12;*
res=newres;
第二步:求出十位:t=x%10=2,newres=res10+t=310+2=32;
x=x/10=1;
res=newres;
第三步:求出百位:t=x%10=1,newres=res10+t=3210+1=321;
如此循环即可
public int reverse(int x) {
int res=0;
while(x!=0){
int t=x%10;
int newres=res*10+t;
//数字溢出,返回0
if((newres-t)/10!=res))
return 0;
x=x/10;
res=newres;
}
return res;
}