연속되는 숫자합이 해당수와 같은지를 판별해서 그 개수를 반환해 주면 되는 문제이다. 크게 어렵지 않다.
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 1;// 자기 자신하나 카운트
for (int i=1; i<n; i++) {
int sum = 0, start = i;
while (sum < n) sum += start++;// 같거나 커지기 전까지 더해준다.
if (sum == n) answer++;// 같다면 answer++;
}
return answer;
}