可以取数字的最高位和最低位进行对比,如果相等的话,将数字的最高位和最低位“削”去,循环对比。
比如121,最高位为1,最低位为1,相等,然后“削”去最高位最低位变为2,最高位为2,最低位也为2,相等“削”去最高位和最低位变为0,结束,返回true。
如何确定最高位的数字?找到小于该数字的最大的10的幂div,然后除以div。
public boolean isPalindrome(int x) {
if(x < 0) {
return false;
}
int div = 1;
while(x / div >= 10) {
div *= 10;
}
System.out.println(div);
while(x > 0) {
int high = x / div;
int low = x % 10;
if(high != low) {
return false;
}
x = (x - (div * high)) / 10;
div /= 100;
}
return true;
}
网友评论