일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- html5
- unreal engine4
- dictation
- if
- bool
- 영알남
- Project
- C++
- Polymorphism
- python
- Unreal
- 코딩도장
- Java
- Euler
- cow
- 연결리스트
- Notting hill
- font weight
- 파이선
- std
- html
- Bull
- for
- cout
- UE4
- codecademy
- 파이썬
- 알고리즘
- endl
- CSS
- Today
- Total
ProjectEuler 프로젝트 오일러 4번 본문
<문제>
앞에서부터 읽을 때나 뒤에서부터 읽을 때나 모양이 같은 수를 대칭수(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;
}
'Programming > 프로그래밍 문제' 카테고리의 다른 글
ProjectEuler 프로젝트 오일러 9번 (0) | 2017.07.17 |
---|---|
ProjectEuler 프로젝트 오일러 7번 (0) | 2017.07.17 |
ProjectEuler 프로젝트 오일러 6번 (0) | 2017.07.17 |
ProjectEuler 프로젝트 오일러 5번 (0) | 2017.07.17 |
ProjectEuler 프로젝트 오일러 3번 (0) | 2017.07.17 |