Я написал программу для расчета наибольшего продукта палиндрома из 2 трехзначных чисел. Я решил эту проблему в Project Euler, но решение этого же в HackerRank не дает некоторых тестовых примеров. Интересно, что случилось.Самый большой продукт палиндрома
Входной сигнал:
Первая строка содержит T, который обозначает число тестовых примеров. За этим следует Т строк, каждая из которых содержит целое число, Н.
Ограничения:
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);
}
}
Знаете ли вы, в каких случаях это не удается? Можете ли вы опубликовать пример их ввода? – Pshemo
@Pshemo Я обновил вопрос –
На стороне примечание: это, вероятно, не лучший способ сделать это. Вы проверяете 900 * 899 номеров, но есть только 900 шестизначных чисел палиндрома: 100001, 101101, 102201 ... 998899, 999999. – m69