/* 查看网上的思路有两种: 1.每次取两边的数,然后进行比较 2.取数的倒置数,进行比较 */ public boolean isPalindrome1(int x) { if (x<0) return false; //以四位数为例,取左边的数用的方法是/1000,取右边的数用的是%10 //注意每次取完两遍要更新数和位数 int len = 1; int temp = x; while (temp>=10) { len*=10; temp/=10; } while (x!=0) { int left = x/len; int right = x%10; if (left!=right) return false; len/=100; //更新x的方法是先取出后几位,再去掉最右边 //%用来留下后边的,/用来留下前边的 x = (x%len)/10; } return true; } public boolean isPalindrome2(int x) { if (x<0) return false; int a = 0; int b = x; while (b!=0) { a = a*10+b%10; b%=10; } return (a==x); }