zoukankan      html  css  js  c++  java
  • 【简单】9.回文数判断

    9.回文数判断

    题目:
    判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
    解法:

    //数学解法
        public boolean isPalindrome(int x){
            System.out.println("****数学解法****");
            if(x<0) return false;
            int num = x;
            //算出最高位数的整10数
            int div = 1;
            while(x/10>=1){
                div*=10;
                x/=10;
            }
            while(num>0){
                //比较左右两边的数
                int left = num/div;
                int right = num%10;
                if(left!=right) return false;
                //抽取中间的数
                num = (num%div)/10;//22
                //每次少两位,除以100
                div/=100;//10
            }
            return true;
        }
    
        //翻转解法
        public boolean isPalindrome02(int x){
            System.out.println("****翻转解法****");
            //判断不符合条件 x<0 or x的最低位为0
            if(x<0||(x%10==0&&x!=0)) return false;
            /*取后一半的数,进行翻转操作,翻转操作.
           超过一半的话结束,一半的条件如何获取?
           假设1221,取出后两位21 翻转成12 此时刚好与前面的12相等
           这时如果再取出一位2,就比原来的数字大了,这时候就超过了一半
           所以原来的数>取出后翻转的数,在这个范围内,都可以进行翻转
           */
           
            // 翻转操作。
            int rev = 0;
    
            while(x>rev){
                int pop = x%10;
                x/=10;
                rev = rev*10+pop;
            }
            // 偶数的情况 翻转之后刚好相等 即x==rev
            // 奇数的情况 翻转之后的数比原先的数多了一位中间的值 如121
            //翻转之后的数位12 之前还剩下 1  这时只需要将12/10取整 再比较。
            return x==rev||x==rev/10;
    
        }
    
        //字符串解法
        public boolean isPalindrome01(int x){
            System.out.println("****字符串解法****");
            String reversedStr = (new StringBuilder(x+"")).reverse().toString();
            return (x+"").equals(reversedStr);
        }
    
  • 相关阅读:
    union 和 union all的区别
    JDBC中PreparedStatement相比Statement的好处
    25个经典的Spring面试问答
    MySQL 事务
    漫谈Linux下的音频问题(转)
    监控 Linux 性能的 18 个命令行工具(转)
    在终端中用默认程序打开文件(转)
    【转】使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)
    Getting Started with Amazon EC2 (1 year free AWS VPS web hosting)
    压缩解压命令小结
  • 原文地址:https://www.cnblogs.com/summerday152/p/11986270.html
Copyright © 2011-2022 走看看