less than 1 minute read

[no-alignment]

구현 방식

  • 2가지의 연속된 수라면 x + 1 , x +2 로 이루어질 수 있다.
  • 3가지의 연속된 수라면 x + 1, x +2 , x +3 으로 이루어 질 수 있다.
  • i 가지의 연속된 수라면 x + 1 , … , x + i로 이루어질 수 있다.
  • 즉, 연속된 수 k 개로 이루어 지기 위해서는 N - sum(1,k) 를 k 개로 나눴을때 나머지가 0이어야한다.
void solution(int input) {

    int count = 1;
    int answer = 0;
    for (int i = 2; i < input && (input - count) > 0; i++)
    {
        count += i;

        if ((input - count) % i == 0)
            answer++;
    }
    cout << answer;

}