0
私は、2桁の3桁の数字(100-999)の製品から最大のパリンドロームを見つけようとしています。私のアプローチは、文字列を使用するかどうかを調べることでした。私は小さな値を得ています。なぜこれが回文ではないのですか?
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;
デバッガのコードをステップ実行して、期待したことをしていない行を見つけることをお勧めします。ヒント:最大の製品は最も大きな値の1つになる可能性が高いので、トップダウンを開始することもできます。また、i
'return new StringBuilder(str).reverse()。equals(str);'には何も間違っています。 – Bohemian