Presentation is loading. Please wait.

Presentation is loading. Please wait.

Hanoi Tower.

Similar presentations


Presentation on theme: "Hanoi Tower."— Presentation transcript:

1 Hanoi Tower

2 A 기둥의 모든 원판을 C 기둥으로 이동시킨다. B 기둥은 필요할 때는 언제든지 사용이 가능하다. 한 번에 하나의 원판만 이동할 수 있다. 맨 위에 있는 원판만 이동할 수 있다. 크기가 작은 원판 위에 큰 원판이 쌓일 수 없다. 중간의 막대를 임시적으로 이용할 수 있으나 앞의 조건들을 지켜야 한다.

3 3개의 원판이 있는 경우 A B C

4 1 단계 A B C

5 2 단계 A B C

6 3 단계 A B C

7 4 단계 A B C

8 5 단계 A B C

9 6 단계 A B C

10 7 단계 A B C

11 4개의 원판이 있는 경우 A B C

12 4개의 원판이 있는 경우 1 단계 A B C

13 4개의 원판이 있는 경우 2 단계 A B C

14 4개의 원판이 있는 경우 3 단계 A B C

15 4개의 원판이 있는 경우 4 단계 A B C

16 4개의 원판이 있는 경우 5 단계 A B C

17 4개의 원판이 있는 경우 6 단계 A B C

18 4개의 원판이 있는 경우 7 단계 A B C

19 4개의 원판이 있는 경우 8 단계 A B C

20 4개의 원판이 있는 경우 9 단계 A B C

21 4개의 원판이 있는 경우 10 단계 A B C

22 4개의 원판이 있는 경우 11 단계 A B C

23 4개의 원판이 있는 경우 12 단계 A B C

24 4개의 원판이 있는 경우 13 단계 A B C

25 4개의 원판이 있는 경우 14 단계 A B C

26 4개의 원판이 있는 경우 15 단계 A B C

27 Hanoi Tower 를 프로그래밍 하시오. 4개의 원판을 이동시키는 프로그램을 작성하시오.
메인함수와 분리하여 재귀함수를 따로 작성하시오. 코드의 별 모양 * 부분만 코딩하시면 됩니다.

28 #include <stdio.h>
void hanoi_tower(int n, char from, char tmp, char to) { static int step=1; if (n == 1) printf("Step: %d 원판 1을 %c에서 %c로 옮긴다. \n", step++, from, to); else { hanoi_tower(*******************); printf("Step: %d 원판 %d을 %c에서 %c로 옮긴다 \n", step++, n, from, to); } void main(void) hanoi_tower(4, 'A', 'B', 'C');

29


Download ppt "Hanoi Tower."

Similar presentations


Ads by Google