【题目】
定义回文数的概念如下:
如果一个非负数左右完全对应,则该数是回文数,如:121,22
如果一个负数的绝对值左右完全对应,则该数是回文数,如:-121,-22
【代码】
public static void main(String[] args) {
int[] arr={1,2,3,4,5};
printRandM(arr,3);//1 5 4
System.out.println(isPalindrome(32456));//false
System.out.println(isPalindrome(-12021));//true
}
//判断一个数是否是回文数
public static boolean isPalindrome(int n){
if(n==Integer.MIN_VALUE){
//32位负数最小值,转不成正数,也明显不是回文数
return false;
}
n=Math.abs(n);
int help=1;
while(n/help>=10){//防止help溢出
help*=10;//使Help和n位数一样
}
while(n!=0){
if((n/help)!=n%10){
return false;//n的最高位不等于最低位,非回文
}
n=(n%help)/10;//n除去最高位和最低位
help/=100;//使help变得跟n位数一样
}
return true;
}