最大的回文产品

时间:2015-11-01 16:44:41

标签: java algorithm

我写了一个程序来计算2个三位数的最大回文产品。我已经在Project Euler中解决了这个问题,但在HackerRank中解决这个问题却失败了一些测试用例。我想知道出了什么问题。

输入:

第一行包含表示测试用例数的T.接下来是T行,每行包含一个整数N.

约束:

1≤T≤100

101101<N<1000000

public class Solution {
    static boolean isPalin ( int i){ 
    int low = 0;   
     String a = String.valueOf(i);
     int high = a.length() - 1;

     while(low<high){
       if(a.charAt(low) == a.charAt(high)){
         low++;
         high--;
       }else{
            return false;
       }
     }
     return true;
} 
public static void main(String[] args) {
    Scanner in  = new Scanner(System.in);
    int noOfCases = in.nextInt();
    int currMax = 0, result = 0;
    int no_one, no_two;
    int largest = -1;

    for(int i=0; i<noOfCases; i++){

        currMax = in.nextInt();

        for(no_one = 100; no_one<=999; no_one++){
            for(no_two = 101; no_two<=999; no_two++){
                result = no_one * no_two;

                if(isPalin(result)){
                    if(result > largest && result < currMax )
                        largest = result;
                }
            }
        }
        System.out.println(largest);
    }
}

1 个答案:

答案 0 :(得分:1)

您正在测试多个案例,但只在程序开始时将最大值重置为-1。

尝试将largest=-1;添加到i。

的循环开头