问题:
传入整数,返回整数的反向数字。
示例:
输入 123 返回 321
输入 -123 返回 -321
输入 120 返回 21
当反向整数溢出时,返回0
原本的解题方案
private int intDemo(int x){
if(x == 0){
return 0;
}
String str = String.valueOf(x);
String newResult = new String();
if(x >= 0){
for (int i = str.length(); i > 0; i--) {
String j = str.substring(i-1,i);
newResult = newResult + j ;
}
}else{
newResult = newResult + "-";
for (int i = str.length() ; i > 1; i--) {
String j = str.substring(i-1,i);
newResult = newResult + j ;
}
}
int parseInt = 0;
try {
parseInt = Integer.parseInt(newResult);
} catch (Exception e) {
}
return parseInt;
}
//测试
@Test
public void testName() throws Exception {
intDemo = intDemo(1024);
System.err.println(intDemo);
}
返回结果
4201
改善方案
public int reverse(int x){
int result = 0;
while (x != 0){
int tail = x % 10;
int newResult = result * 10 + tail;
if ((newResult - tail) / 10 != result){
return 0;
}
result = newResult;
System.out.println("result: "+result);
x = x / 10;
}
return result;
}
@Test
public void testName() throws Exception {
int intDemo = reverse(1024);
System.err.println(intDemo);
}
返回结果
4201