怎样判断一个整数是不是回文数?

首先说明一下回文数是什么,回文数就是将这个数反转之后,得到的数仍然是同一个数。例如:131,25352就是回文数。

那么怎么判断一个数是不是回文数呢?

有两种方法,第一种是数字翻转,即将整数翻转以后,看和原来一样吗,一样的话,就是回文数,反之则不是。

第二种方法是:逐位判断,即取整数的最后一位和第一位比较,然后将左右两位删除,再进行取最后一位和第一位比较,如果想等,则是回文数;反之则不是。

第一种:数字翻转

代码如下:

public class PalindromeNumber{
    public static void main(String args[]){
        palindrome(25352);
    }
    public static boolean palindrome(int x){
        if(x<0){
            return false;
        }

        int temp = x;
        int rec = 0;
        while(temp>0){
            rec = rec * 10 + temp % 10;  //将数字翻转,首先取最后一位
            temp = temp / 10;  //取一位就减少一位
        }
        System.out.println(x+"是回文数吗?"+x == rec);
        return x == rec;
    }
}

第二种方法:逐位判断

代码如下:

public class PalindromeNumber{
    public static void main(String args[]){
        palindrome(321);
    }

    public static boolean palindrome(int x){
        if(x<0){
            return false;
        }
        int len = 1;
        while(x / len >= 10){ //判断位数
            len *= 10;
        }
        while(x > 0){
            int left = x /len; //取左边第一位
            int right = x % 10; //取最后一位
            if(left != right){
                System.out.println(false);
                return false;
            }

            x = x % len / 10;  //减去左右边上两位,剩余中间的
            len  = len /100;  //len也减少两位
        }
        System.out.println(true);
        return true;
    }
}

这两种方法均可以实现回文数的判断。

猜你喜欢

转载自blog.csdn.net/qq_39650208/article/details/77937039