0
저는 3 자리 숫자 2 자리 (100-999)의 제품에서 최대의 palindrome을 찾으려고합니다. 내 접근 방식은 그것이 회문인지 또는 문자열을 사용하지 않는지 확인하는 것이 었습니다. 나는 작은 가치를 얻고있다.왜 이것이 회문이 아닌가?
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;
디버거의 코드를 단계별로 실행하여 예상 한대로하지 않는 줄을 찾으십시오. 힌트 : 가장 큰 제품은 가장 큰 값 중 하나 일 가능성이 높으므로 위에서 아래로 시작할 수도 있고, 그 반대도 무시할 수 있습니다. –
'return new StringBuilder (str) .reverse(). equals (str);이 (가) 잘못되었습니다. – Bohemian