我写了一个程序来计算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);
}
}
答案 0 :(得分:1)
您正在测试多个案例,但只在程序开始时将最大值重置为-1。
尝试将largest=-1;
添加到i。