0
Я пытаюсь найти самый большой палиндром из продукта 2 3-значного числа (100-999). Мой подход состоял в том, чтобы проверить, является ли это палиндром или не использует String. Я получаю небольшие значения.Почему это не палиндром?
import acm.program.*;
public class Palindrom extends ConsoleProgram{
public void run(){
int last = 0;
for (int i = 100; i <= 999; i ++){
for (int k = 100; k <= 999; k++){
int p = i*k;
String str = "" + p;
if(isPalindorme(p, str)){
last = p;
}
}
}
println(last);
}
public boolean isPalindorme(int p, String str){
for (int i = 0; i < str.length()/2; i++){
if (str.charAt(i) != str.charAt(str.length()-1-i)){
return false;
}
}
return true;
}
}
Я думаю, что, возможно, эта ошибка в этой строке:
String str = "" + p;
Я предлагаю вам выполнить код в своем отладчике, чтобы найти строку, которая не выполняет то, что вы ожидали от нее. подсказка: самый большой продукт, вероятно, будет одним из самых больших значений, поэтому вы можете начать сверху вниз, также вы можете игнорировать, где i
Что-то не так с 'return new StringBuilder (str) .reverse(). Equals (str);'? – Bohemian