728x90
반응형
[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 30 31 32 33 34 35 36 37 38 39 40 | #include "stdafx.h" #include "stdlib.h" #include <iostream> #include <string> using namespace::std; bool num_check(int num) { int length = 0; string check = std::to_string(num); length = check.length(); for (int i = 0; i < length/2 ; i++) { if (check.at(i) != check.at(length - (1 + i))) return false; } return true; } int main() { int ans = 10000, a1, a2; int num; for (int i = 100; i < 1000; i++) { for (int j = 100; j < 1000; j++) { num = i * j; if (num_check(num) && (ans < num)) { a1 = i; a2 = j; ans = num; cout << a1 << " // " << a2 << " // " << ans << endl; } } } system("pause"); return 0; } | cs |
728x90
반응형
'Solution > Project Euler' 카테고리의 다른 글
[6/C++] 1부터 100까지 "제곱의 합"과 "합의 제곱"의 차는? (0) | 2018.05.24 |
---|---|
[5/C++] 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수 (0) | 2018.05.24 |
[3/C++] 가장 큰 소인수 구하기 (0) | 2018.05.18 |
[2/C++] 피보나치 수열에서 4백만 이하이면서 짝수인 항의 합 (0) | 2018.05.18 |
[1/C++] 1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면? (0) | 2018.05.17 |