문제 링크: https://www.acmicpc.net/problem/10448
10448번: 유레카 이론
문제 삼각수 Tn(n ≥ 1)는 [그림]에서와 같이 기하학적으로 일정한 모양의 규칙을 갖는 점들의 모음으로 표현될 수 있다. [그림] 자연수 n에 대해 n ≥ 1의 삼각수Tn는 명백한 공식이 있다. Tn = 1 + 2 + 3 + ... + n = n(n+1)/2 1796년, 가우스는 모든 자연수가 최대 3개의 삼각수의 합으로 표현될 수 있다고 증명하였다. 예를 들어, 4 = T1 + T2 5 = T1 + T1 + T2 6 = T2 + T2 or 6 = T
www.acmicpc.net
삼각수 = 1, 3, 6, 10, 15, ....
n번째 삼각수 = n * (n + 1) / 2
45번째 삼각수 = 45 * 46 / 2 = 1035
3중 for문을 각각 45번째 삼각수까지 돌면서 세개의 삼각수의 합이 입력받은 수와 같은경우가 있는지 확인한다.
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
|
#include <bits/stdc++.h>
using namespace std;
int triNum(int x) {
return x * (x + 1) / 2;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int t;
cin >> t;
while(t--) {
int n;
cin >> n;
bool ok = false;
for(int i = 1; i <= 45; i++) {
for(int j = 1; j <= 45; j++) {
for(int k = 1; k <= 45; k++) {
if(triNum(i) + triNum(j) + triNum(k) == n) ok = true;
}
}
}
if(ok) cout << 1 << '\n';
else cout << 0 << '\n';
}
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
'완전 탐색 (Brute Force)' 카테고리의 다른 글
백준 1018 체스판 다시 칠하기 (0) | 2020.04.24 |
---|---|
백준 2503 숫자 야구 (0) | 2020.04.24 |
백준 3085 사탕 게임 (0) | 2020.04.23 |
백준 2231 분해합 (0) | 2020.04.23 |
백준 2309 일곱 난쟁이 (0) | 2020.04.23 |