[SWEA] 상원이의 연속 합

문제 보러가기

제한사항

이외의 제한사항은 없다.

첫번째 생각

오랜만에 C++ 연습을 해보았다.

역시 dfs를 사용하면 간단하게 해결되는 문제이다

C++ Code

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
#include <iostream>
using namespace std;

int N;
bool go(int r,int sum);

int main() {
	int T;
	cin >> T;
	int tc;
	for (int tc = 1; tc <= T; tc++) {
		cin >> N;
		int cnt = 0;
		for (int n = 1; n <= N; n++) {
			if (go(n, 0)) {
				cnt++;
			}
		}
		cout << "#" << tc << " " << cnt << endl;
	}
}

bool go(int r, int sum) {
	sum = sum + r;
	if (N < sum) {
		return false;
	}
	else if (N == sum) {
		return true;
	} else {
		return go(r + 1, sum);
	}
}