public class Test09 {
public static void main(String[] args) {
System.out.println(isPalindrome(2147483647));
int digit = (int) (Math.log(234) / Math.log(10) + 1);
System.out.println(digit);
}
public static boolean isPalindrome(int x) {
if (x<0) {
return false;
}
int rev = reverse(x);
return x == rev;
}
private static int reverse(int x) {
int rev = 0;
while(x!=0){
int pop = x%10;
x=x/10;
if (rev>Integer.MAX_VALUE/10 || rev<Integer.MIN_VALUE/10) {
return 0;
}
rev = rev*10+pop;
}
return rev;
}
public boolean isPalindrome02(int x) {
if (x < 0) {
return false;
}
int digit = (int) (Math.log(x) / Math.log(10) + 1);
int revert = 0;
int pop = 0;
for (int i = 0; i < digit / 2; i++) {
pop = x % 10;
revert = revert * 10 + pop;
x /= 10;
}
if (digit % 2 == 0 && x == revert) {
return true;
}
if (digit % 2 != 0 && x / 10 == revert) {
return true;
}
return false;
}
}