一个数将顺序倒过来之后得到的数与原来的数相同,这个数就是回文数。如:123321·倒过来还是123321 该数是回文数,12345和54321 就不是。负数都不是回文数。0-9都是。
public class huiwenshu {
public static void main(String[] args) {
// TODO Auto-generated method stub
//第一种将数字转换为字符串 再将字符串倒过来。遍历一半数组来判断相对应位置数值是否相等。
int x= 1221;
String s=String.valueOf(x);
String sb =new StringBuilder(s).reverse().toString();
System.out.println((x +"").equals(sb));
}
}
public class huilishu {
public static void main(String[] args) {
huilishu h=new huilishu();
System.out.println(h.isPalindrome(123321));
}
//第二种 从第一位还开始与最后一位比较是否相同,以此类推。
public boolean isPalindrome(int x) {
if(x<0)
return false;
int div=1;
while(x/div>=10) {
div*=10;
}
while(x>0) {
int l=x/div;//得到x值的首位
int r=x%10;//得到x值的末位
if(l!=r)
return false;
x=(x%div)/10;每比较一次,x的值要去掉两边的值。
div/=100;//每次都比较了两位数,div要随x值减少两位数。
}
return true;
}
}