되는대로 살자

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

2009~2014/C/C++

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

malu 2010. 11. 2. 21:59
프로그램 명: doubles
제한시간: 1 초

일련의 수열이 주어질 때 각 원소의 2 배가 되는 값이 수열내에 존재하는가? 존재하면 몇개가 존재하는 가를 구하는 프로그램을 작성하시오.

예를 들어 , 주어지는 수열이 다음과 같을 때

      1 4 3 2 9 7 18 22
      
1 .. 2 존재
4 .. 8 x
3 .. 6 x
2 .. 4 존재
9 .. 18 존재
7 .. 14 x 
18 .. 36 x
22 .. 44 x
가능한 원소의 개수는 3 개 .

입력

수의 개수는 2 이상 15 이하이고 수열 내의 원소의 크기는 99 이하이고 같은 수는 입력되지 않는다.

입력 끝은 0 이다.

입출력 예

입력

1 4 3 2 9 7 18 22 0

출력

3

입력

2 4 8 10 0

출력

2

입력

7 5 11 13 1 3 0

출력

0

출처:Mid-Central USA 2003

풀이 : 소트를 이용하여 문제를 푼다.
01 #include <stdio.h>
02   
03 int main()
04 {
05     int i,ar[15],LoopCount=0,NumCount=0,j;
06     for(i=0;i<15;i++)
07     {
08         scanf("%d",&ar[i]);
09         if(ar[i]==0)
10             break;
11         LoopCount++;
12     }
13 //  printf("%d\n",LoopCount);
14     for(i=0;i<LoopCount;i++)
15     {
16         for(j=0;j<LoopCount;j++)
17         {
18             if((ar[i]*2)==ar[j])
19             {
20                 NumCount++;
21 //              printf("%d:%d %d\n",ar[i],ar[j],NumCount);
22             }
23         }
24     }
25     printf("%d",NumCount);
26 }