我没有得到期望的输出

时间:2019-01-16 04:07:22

标签: java

找出由两个3位数字的乘积组成的最大回文。 我的代码看起来还不错。 但是我没有得到想要的输出。

//My code       
public class NewClass{

    public static void main(String[] args) {
        lar();
    }
    public static void lar(){
        long a = 999L;
        long b = 999L;
        int ct = 0;
        while(a > 99){
            while(b > 99){
                long c = a * b;
                if(isPalindrome(c)){
                    System.out.println(a + "  " + b);
                    System.out.println(c);
                    ct++;
                    break;
               }
               b = b - 1;
            }
            a = a - 1;
            if(ct > 0){
                break;
            }
        }
    }
    public static boolean isPalindrome(long number){
        long n = 0L;
        long plnum = 0L;
        long num = number;
        while(number != 0){
            n = number % 10;
            plnum = plnum * 10;
            plnum = plnum + n;
            number = number / 10;
        }
        if(num == plnum){
            return true;
        } else {
            return false;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

在外循环中,重置b的值。

         while(a > 99){
            while(b > 99){
               if(isPalindrome()){
               .....
               }
               b = b - 1;
            }
            a = a - 1;
            b=999L;// <---------------- this
          }