[JAVA]세 자리 수를 곱하여 대칭 수 구하기

반응형

문제)

 앞이나 뒤에서 읽을 때 모양이 같은 수를 대칭수라고 한다. 두 자리 수를 곱해 만들 수 있는 가장 큰 수는 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
30
31
32
33
34
35
36
37
38
39
public class Advanced01 {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
 
        int max = 0;
        
        for(int i = 999; i>=100; i--)
        {
            for(int j = 999; j>=100; j--)
            {
                int result = i*j;
 
                //각 자리수 가져오기
                int num1 = result/100000;
                int num2 = result/10000%10;
                int num3 = result/1000%10;
                int num4 = result/100%10;
                int num5  =result/10%10;
                int num6 = result%10;                
                
                //대칭 비교
                if(num1 == num6 && num2 == num5 && num3==num4)
                {
                    //최대값 
                    if(result > max)
                    {
                        max = result;
                    }
                }
            }
        }
        System.out.println(max);
    }
 
}
 
cs


결과


추천하고 싶은 방법은 아닙니다 ㅠㅠ

너무 하드코딩이네요.

세 자리 수의 곱의 6자리를 3자리 3자리 나누어서 비교하는 방법을 사용하면 좋겠지만,

어떻게 하는지 몰라서... 연구가 필요한듯

728x90
반응형