Note/Source Code2007. 12. 19. 14:47


[문제 19] 다음에 나오는 규칙은 ‘하노이의 탑’의 규칙이다 ‘하노이의 탑’을 풀 수 있는 프로그램을 작성하시오.


[규칙]

a, b, c라는 3개의 봉이 있다.

a의 봉에 도넛형 원반이 n장 끼워져 있다.(위쪽이 직경이 짧다).

이 원반을 모두 b봉으로 옮긴다.

단 원반은 한 번에 1장씩만 이동한다.

큰 원반은 작은 원반 위에 올려놓아서는 안된다.


[알고리즘 해설]

 ① 봉 a에서 n - 1개의 원반을 봉 c로 옮긴다.

 ② 봉 a에서 1개의 원반을 봉 b로 옮긴다.

 ③ 봉 c에서 n - 1개의 원반을 봉 b로 옮긴다.



[문제 20] 0 ~ 4 사이의 난수 20개를 발생시켜 0, 1, 2, 3, 4가 몇 개씩 발생하였는가를 출력하는 프로그램을 작성하시오.


[참고 자료]

 void srand(unsigned int seed);  // Sets a random starting point.

      seed : Seed for random-number generation

 int rand( void );  // range : 0 ~ RAND_MAX (0x7fff ⇒ 32767)



[문제 21] 점수를 높은 순으로 순위를 부여하는 프로그램을 작성하시오.(단, 같은 점수는 동일 순위를 부여한다. 그리고 대상자료가 내림차순으로 정렬되어 있을 것을 전제로 한다.)


[입력 데이터]

 95, 95, 90, 85, 85, 80, 75, 70, 60, 60



[문제 22] 1에서 100까지 숫자 중 3의 배수를 제외한 숫자들의 합을 구하는 프로그램을 작성하시오.



[문제 23] 2차원 배열의 가로, 세로의 합

  아래의 데이터를 input.dat 파일에서 읽어들여 출력 예시와 같이 가로, 세로의 합계를 구하여 표시하는 프로그램을 작성하라. (단, 첫 줄에 있는 데이터는 배열의 크기 행과 열의 크기를 나타내며 10이하의 정수이다.)

▸입력 형식 (input.dat)

▸출력 형식

 6   5

 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

 1    2    3    4    5   15

 6    7    8    9   10   40

11   12   13   14   15   65

16   17   18   19   20   90

21   22   23   24   25  115

26   27   28   29   30  140

81   87   93   99  105  465



[문제 24] 정렬(sorting)

  임의의 정수 10개를 입력받아서 오름차순으로 정렬하여 출력하는 프로그램을 작성하라.


[입․출력 예시]

정수 10개를 입력하시오: 73 65 52 24 83 17 35 96 41 9

결과: 9 17 24 35 41 52 65 73 83 96



[문제 25] 소수(素數)

  소수란 1과 자기 자신으로 밖에 나눌 수 없는 정수를 말한다. 입력받은 범위까지의 소수를 출력하는 프로그램을 작성하라.

단, 입력하는 정수의 범위는 2 ~ 200으로 가정한다.

[입․출력 예시]

정수를 입력하세요(2 - 200) : 13

   2   3   5   7  11  13


[문제 26] 계승(階乘, factorial) 구하기

  자연수 n을 입력받아서 n의 계승을 구하는 프로그램을 작성하시오. 단, 계승의 계산은 재귀 함수(recursive function)로 작성한다.


[입․출력 예시]

자연수(n)을 입력하시오: 5

5!의 값은 120입니다.


[알고리즘 해설]

               

Posted by 스카이데이즈