algorithm

더블릿|dovelet - 3번째 계단 - 중간 수/center1

블루건 2016. 8. 27. 23:36

문제


프로그램 명: center1
제한시간: 1 초

다음 성질을 만족할 때 n 을 중간수라 한다.

1 + 2 + 3 + ... + n-1 = (n+1) + (n+2) + (n+3)+ ..+ (n+m) (m은 1 이상의 자연수)

예를 들어 , 4 는 1+2+3=6 이고 5 부터 차례대로 더해갈 때 5+6=11 이므로 4 는 중간수가 될 수 없다.

6 은 1+2+3+4+5=15 이고 7+8=15 이므로 6 은 중간수이다.

정수 하나를 입력으로 받아 중간수 인지를 판별하는 프로그램을 작성하시오.

입력

10,000 이하의 자연수가 입력으로 주어진다.

출력

중간수이면 O , 아니면 X 를 출력한다.

입출력 예

입력

6

출력

O

입력

10

출력

X

보충 설명

35 는 중간수

  • 1 + 2 + ... + 34 = 595
  • 36 + 37 + ... + 49 = 595

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
#include <iostream>
 
using namespace std;
 
int main()
{
    int n;
    cin >> n;
    int sum1 = 0, sum2 = 0;
    for (int i = 0; i < n; i++)
        sum1 += i;
 
    while (sum1 > sum2)
    {
        n++;
        sum2 += n;
    }
 
    if (sum1 == sum2)
        cout << "O";
    else
        cout << "X";
 
    return 0;
}
cs