美文网首页
回文数(题号:9)

回文数(题号:9)

作者: Bug之王 | 来源:发表于2019-10-27 00:29 被阅读0次

    可以取数字的最高位和最低位进行对比,如果相等的话,将数字的最高位和最低位“削”去,循环对比。
    比如121,最高位为1,最低位为1,相等,然后“削”去最高位最低位变为2,最高位为2,最低位也为2,相等“削”去最高位和最低位变为0,结束,返回true。
    如何确定最高位的数字?找到小于该数字的最大的10的幂div,然后除以div。

    public boolean isPalindrome(int x) {
            if(x < 0) {
                return false;
            }
            
            int div = 1;
            while(x / div >= 10) {
                div *= 10;
            }
            System.out.println(div);
            
            while(x > 0) {
                int high = x / div;
                int low = x % 10;
                if(high != low) {
                    return false;
                }
                x = (x - (div * high)) / 10;
                div /= 100;
            }
            return true;
            
        }
    

    相关文章

      网友评论

          本文标题:回文数(题号:9)

          本文链接:https://www.haomeiwen.com/subject/yazuvctx.html