У меня возникли проблемы с выяснением, почему мой код не работает. По сути, я пытаюсь закодировать Project Euler # 4, который пытается определить самый большой номер палиндрома, который можно получить при умножении двух трехзначных чисел. Этот код, похоже, не работает (он будет компилироваться). Всякий раз, когда я выполняю код, он просто печатает «0». Я знаю, что это может быть не алгоритмически эффективным, но что я делаю неправильно?Project Euler # 4: Java
public class Palindrome {
public static void main (String [] args) {
int largestnum = 0;
Palindrome pp = new Palindrome();
for (int i = 100; i <= 999; i++) {
for (int k = 100; k <= 999; k++) {
if (pp.checkPal(i * k) == true) {
largestnum = i * k;
}
}
}
System.out.println(largestnum);
}
public boolean checkPal(int y) {
String snum = Integer.toString(y);
int snum_length = snum.length() - 1;
String palindrome = new String("");
for (int i = snum_length; i >= 0; i--) {
palindrome.concat(Character.toString(snum.charAt(i)));
}
if (snum.equals(palindrome)) {
return true;
}
else {
return false;
}
}
}
Lean использовать отладчик, это сэкономит вам много часов в долгосрочной перспективе. –
У вас есть оператор 'println' в цикле for. –
О стрелять. Просто осознал это. Благодарю. – priya