使用JAVA判断是否是回文数

回文数:正着念反着念一样,例如:12321的回文数是12321,所以12321就是回文数

public class Test1_Palindrome {
    public static void main(String[] args) {
        //判断是否是回文数,正着反着一样
        System.out.println(isPalindrome(123456)); //false
//        System.out.println(isPalindrome(12321));//true
//        System.out.println(isPalindrome(120));  //false
//        System.out.println(isPalindrome(12));  //false
//        System.out.println(isPalindrome(1));  //true

        //1-1000的回文数
//        for (int i = 0; i <=1000; i++) {
//            if (isPalindrome(i)){
//                System.out.println(i);
//            }
//        }
    }

    public static boolean isPalindrome(int n){

        //数据校验
        //最后一位为0,肯定不是回文
        //负数都不是回文
        if(n<0 || n % 10 == 0){
            return false;
        }

        //折半获取后半段的倒序内容
        //temp用来保存后半段的内容
        int temp = 0;

        //n>temp:原数大于倒叙数
        while (n > temp){
            //比如(123456)第一次temp=0*10+6=6,n=12345
            //           第二次 temp=6*10+5=65,n=1234
            //           第三次 temp=65*10+4=654,n=123


            //temp记录倒叙内容
            temp = n % 10 + temp * 10;

            //修改原始数据,截取掉最后一位
            n /= 10;

            //System.out.println(String.format("temp=%d, n=%d",temp, n));
            //temp=6, n=12345
            //temp=65, n=1234
            //temp=654, n=123
        }

        //判断是否是回文, 偶数个 || 奇数个
        //回文:要不前后相等(偶数个),要不奇数个去掉temp的最后一位和n相等,则返回
        //回文:其中一个成立就是回文
        return temp == n || temp / 10 == n;
    }
}

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值