프로그램 명: 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 |
'algorithm ' 카테고리의 다른 글
더블릿|dovelet - 3번째 계단 - 모듈러 인버스/modular_inverse (0) | 2016.08.29 |
---|---|
더블릿|dovelet - 3번째 계단 - 삼각 수의 합/triangular_sum (0) | 2016.08.28 |
더블릿|dovelet - 3번째 계단 - 검증 수/validate (0) | 2016.08.26 |
더블릿|dovelet - 3번째 계단 - 완전수,부족수,과잉수/perfect (0) | 2016.08.26 |
더블릿|dovelet - 3번째 계단 - 완전수/complete (0) | 2016.08.25 |