Hanoi Tower
A 기둥의 모든 원판을 C 기둥으로 이동시킨다. B 기둥은 필요할 때는 언제든지 사용이 가능하다. 한 번에 하나의 원판만 이동할 수 있다. 맨 위에 있는 원판만 이동할 수 있다. 크기가 작은 원판 위에 큰 원판이 쌓일 수 없다. 중간의 막대를 임시적으로 이용할 수 있으나 앞의 조건들을 지켜야 한다.
3개의 원판이 있는 경우 A B C
1 단계 A B C
2 단계 A B C
3 단계 A B C
4 단계 A B C
5 단계 A B C
6 단계 A B C
7 단계 A B C
4개의 원판이 있는 경우 A B C
4개의 원판이 있는 경우 1 단계 A B C
4개의 원판이 있는 경우 2 단계 A B C
4개의 원판이 있는 경우 3 단계 A B C
4개의 원판이 있는 경우 4 단계 A B C
4개의 원판이 있는 경우 5 단계 A B C
4개의 원판이 있는 경우 6 단계 A B C
4개의 원판이 있는 경우 7 단계 A B C
4개의 원판이 있는 경우 8 단계 A B C
4개의 원판이 있는 경우 9 단계 A B C
4개의 원판이 있는 경우 10 단계 A B C
4개의 원판이 있는 경우 11 단계 A B C
4개의 원판이 있는 경우 12 단계 A B C
4개의 원판이 있는 경우 13 단계 A B C
4개의 원판이 있는 경우 14 단계 A B C
4개의 원판이 있는 경우 15 단계 A B C
Hanoi Tower 를 프로그래밍 하시오. 4개의 원판을 이동시키는 프로그램을 작성하시오. 메인함수와 분리하여 재귀함수를 따로 작성하시오. 코드의 별 모양 * 부분만 코딩하시면 됩니다.
#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');