Java 为什么这不是回文?
我试图从2个3位数(100-999)的乘积中找到最大的回文。我的方法是检查它是回文还是不使用字符串。我得到的价值很小Java 为什么这不是回文?,java,palindrome,Java,Palindrome,我试图从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
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;
}
}
您还需要检查
p>last
我建议您在调试器中逐步检查代码,以查找未按预期执行的行。提示:最大的乘积可能是最大值之一,因此您可以从上到下开始,也可以忽略返回新StringBuilder(str).reverse().equals(str)时出错的地方代码>?
String str = "" + p;