java实现回文数判断

控制台随机输入一个数,用where循环实现回文数判断。

 public static void test2(){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入:");
        //输入的数
        int num = sc.nextInt();
        //转为字符串
        String numStr = num+"";
        //获取字符串长度
        int length = numStr.length();
        //长度从1开始
        int index = 1;
        //拆分之后累计相加的数
        int newNumber = 0;
        //index小于他的长度进入循环 index每次+1  当大于他的长度说明已经拆完了 不进入循环
        while (index<=length){
            //对应规则 个对万 十对千 百对百 千对十 万对个
//            17571 17571
            //第一次拆下来第一位是 新合成数的个位 不乘10的任何次方
            if(index==1){
                //Math.pow(a,b)相当于a的b次方  与 math.random()是相同包下面的
                newNumber = (num / (int) Math.pow(10, length - 1))+newNumber;
            }else if(index>1&&index<length){
                //中间拆除的 要乘以十的相应次方  类似于五位数(取千位)int num2 = ((num % 10000)/1000)*10; (取百位)int num3 = ((num % 1000)/100)*100;
                newNumber = ((num % (int) Math.pow(10, length - (index-1))) / (int) Math.pow(10, length - index) * (int) Math.pow(10, index-1))+newNumber;
            }else if(index==length){
                //最后一次拆下来的数 必定是新合成数的第一位 必须乘以10的字符串长度-1次方  例如 121 121 长度为3(从1开始  1-3) 100=10的2次方
                newNumber = (num % (int) Math.pow(10, 1)*(int) Math.pow(10, length - 1))+newNumber;
            }
            //index每次+1
            index++;
        }
        if(num==newNumber){
            System.out.println(num+"是回文数");
        }else{
            System.out.println(num+"不是回文数");
        }
    }

转载请注明出处!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值