되는대로 살자

[C언어 기출문제&풀이] 중간수 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 중간수

malu 2010. 11. 2. 17:20
프로그램 명: center1
제한시간: 1 초
1 부터 n-1 까지의 합이 n+1,n+2,... 의 합과 같을 때 n 을 중간수라 한다.
예를 들어 , 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
풀이 : 중간수의 조건을 잘 생각하면서 풀도록 한다. (루프 사용)
소스코드
01 #include <stdio.h>
02   
03 int main()
04 {
05     int n,i,front=0,back=0;
06     scanf("%d",&n);
07     for(i=0;i<n;i++)
08     {
09         front=front+i;
10     }
11     for(i=n+1;;i++)
12     {
13         if(back>=front)
14             break;
15         back=back+i;
16     }
17     if(back==front)
18         printf("O");
19     else 
20         printf("X");
21 }