본문 바로가기

코딩 테스트/Project Euler @ kr

4) 세자리 수를 곱해 만들 수 있는 가장 큰 대칭수

반응형

http://euler.synap.co.kr/prob_detail.php?id=4


앞에서부터 읽을 때나 뒤에서부터 읽을 때나 모양이 같은 수를 대칭수(palindrome)라고 부릅니다.

두 자리 수를 곱해 만들 수 있는 대칭수 중 가장 큰 수는 9009 (= 91 × 99) 입니다.

세 자리 수를 곱해 만들 수 있는 가장 큰 대칭수는 얼마입니까?


-----------------------------------------------


public static void main(String[] args){

int max=0;

for(int first = 100; first<1000; first ++){

for(int second = 100; second<1000; second ++){

String result1 = String.valueOf(first * second);

if(result1.charAt(0)==result1.charAt(result1.length()-1) &&

result1.charAt(1)==result1.charAt(result1.length()-2) &&

result1.charAt(2)==result1.charAt(result1.length()-3) &&

max < first * second){

max = first * second;

}

}

}

System.out.println(max);

}



다시 공부--------------------------------


public static void main(String arg[]){

int max=0;

for(int i=999;i>99;i--){

for(int j=999;j>99;j--){

int num = i*j;

if(num>max){

int reverse = 0;

while(num!=0){

reverse*=10;

reverse+=(num%10);

num/=10;

}

if(i*j==reverse && max < reverse){

max = reverse;

}

}

}

}

System.out.println(max);

}

반응형