세자리 수를 곱해 만들 수 있는 가장 큰 대칭수
Problem 4
앞에서부터 읽을 때나 뒤에서부터 읽을 때나 모양이 같은 수를 대칭수(palindrome)라고 부릅니다.
두 자리 수를 곱해 만들 수 있는 대칭수 중 가장 큰 수는 9009 (= 91 × 99) 입니다.
세 자리 수를 곱해 만들 수 있는 가장 큰 대칭수는 얼마입니까?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import java.util.ArrayList; import java.util.Collections; public class euler_p4 { public static void main(String[] args) { int intVal = 0; String strVal = null; ArrayList<String> arrList = new ArrayList<String>(); for(int i = 999; i > 0; i--) { for(int j = 999; j > 0; j--) { intVal = i*j; strVal = Integer.toString(intVal); if(strVal.length() %2 == 0) { if(strVal.length() == 6) { if(strVal.charAt(0) != strVal.charAt(5)) continue; if(strVal.charAt(1) != strVal.charAt(4)) continue; if(strVal.charAt(2) != strVal.charAt(3)) continue; arrList.add(strVal); } } } } System.out.println(Collections.max(arrList)); } } | cs |