본문 바로가기

알고리즘

오일러 문제4

세자리 수를 곱해 만들 수 있는 가장 큰 대칭수
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

'알고리즘' 카테고리의 다른 글

오일러 문제6  (0) 2019.12.19
오일러 문제5  (0) 2019.12.18
오일러 문제3  (0) 2019.12.16
오일러 문제2  (0) 2019.12.16
오일러 문제1  (0) 2019.12.16