Java代码判断是否是回文数

首先要明白什么是回文数,回文数就是指一个数正着读与反着读数字是一样的,例如12321,正序是1,2,3,2,1,逆序也为1,2,3,2,1,类似于这样的数字就称为回文数。

核心算法:

使用循环语句,将要判断的数用10进行取余,来获得末位数,再将要判断的数除以10,消除数已经取出来的末位数。然后再将得到的每一位末位数*10+新得到的余数来构成新数,判断新数与要判断的数大小是否一致,如果一致,则此数为回文数。

用实例解释:

判断a=121是否为为回文数:

num_num=0.....初始化新数为0

第一次:

x=a%10............得到x=1,这个1是末尾的1,

a=a/10.............得到a=12,消除已经得到的末尾数1,此时末位数成为2

new_num=new_num*10+x.......初始化new_num为0是为了统一算式,这样便于看出循环,此时new_num=0*10+1=1

第二次:

x=a%10..........得到x=2,第一次后a变成了12

a=a/10............得到a=1,消除末尾数2,此时尾数成为1

new_num=new_num*10+x.......此时new_num=1*10+2=12

第三次

x=a%10..........得到x=1,第一次后a变成了1

a=a/10............得到a=1,消除末尾数1,此时数变为了0

new_num=new_num*10+x.......此时new_num=12*10+1=121

在这时得到了新数,那么就要出循环了,所以退出循环的条件为这个数==0时,出循环,然后新数与旧数比较,判断是否为回文数

 

特别要注意将原有的数暂时存起来,否则后面的计算会使数变为0

 

代码:

public static void main(String[] args){
        int a = 12321;
        int x = a;//将这个原有的数存起来,否则再后来的运算中数会变为0
        
        int new_num = 0;
        while (a!=0) {
            int y = a%10;
            a /= 10;
            new_num = new_num*10 + y;
        }
        System.out.println(new_num);
        if (new_num == x) {
            System.out.println("a是回文数");
        }else {
            System.out.println("a不是回文数");
        }
    }

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值