ProjectEuler 프로젝트 오일러 4번 본문

Programming/프로그래밍 문제

ProjectEuler 프로젝트 오일러 4번

쩡호 2017. 7. 17. 14:45

<문제>

 

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

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

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

 

 

 

<해답>

 

#include <iostream>

int main()
{
 int val = 0;
 for (int m=999;m>=100;m--)
 {
  for (int j = 999; j >= 100; j--) {
   int i = m*j;
   int a = i / 100000;
   int b = (i - a * 100000) / 10000;
   int c = (i - a * 100000 - b * 10000) / 1000;
   int d = (i - a * 100000 - b * 10000 - c * 1000) / 100;
   int e = (i - a * 100000 - b * 10000 - c * 1000 - d * 100) / 10;
   int f = i - a * 100000 - b * 10000 - c * 1000 - d * 100 - e * 10;

   if (i >= 100000&&i>val && a == f&&b == e&&c == d) {
    val = i;
    continue;
   }
   else if (i>=10000&&i<100000&&i>val && b == f&&c == e) {
    val = i;
    continue;
   }
   else
    continue;
  }
 }
 std::cout << val << std::endl;
 return 0;
}

Comments