为什么这不是回文?
Why this is not a palindrome?
我试图从 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;
您还需要检查 p > last
。
我试图从 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;
您还需要检查 p > last
。