본문 바로가기

기타[etc]/알고리즘

[알고리즘] 숫자의 표현

SMALL
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
37
38
39
/*
수학을 공부하던 민지는 재미있는 사실을 발견하였습니다.
그 사실은 바로 연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 가지라는 것입니다.
예를 들어, 15를 표현하는 방법은
(1+2+3+4+5)
(4+5+6)
(7+8)
(15)
로 총 4가지가 존재합니다. 숫자를 입력받아 연속된 수로 표현하는 방법을 반환하는 expressions 함수를 만들어 민지를 도와주세요.
예를 들어 15가 입력된다면 4를 반환해 주면 됩니다.
*/
 
#include<iostream>
using namespace std;
int expressions(int testCase)
{
    int answer = 0;
 
    for (int i = 1 ;  i * 2<= testCase+1; i++)
    {
        int tmp = 0;
        for (int c = i ;  c <= testCase+1; c++)
        {
             tmp +=c;
             if(tmp == testCase) {answer +=1break;}
        }
    }
 
    return answer+1;
}
 
int main()
{
    int testNo = 15;
    int testAnswer = expressions(testNo);
// 아래는 테스트로 출력해 보기 위한 코드입니다.
    cout<<testAnswer;
}
 
cs
LIST