반응형
문제)
앞이나 뒤에서 읽을 때 모양이 같은 수를 대칭수라고 한다. 두 자리 수를 곱해 만들 수 있는 가장 큰 수는 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
반응형