C/C++ 언어 하노이 탑/타워 예제
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 31 32 | #include <stdio.h> #include <stdlib.h> #include <assert.h> void move(int n, char a, char b, char c); static int cnt = 0; /* count of the number of moves */ int main(void) { int n; /* number of disks */ printf("디스크의 개수를 입력하세요 : "); fflush(stdin); scanf("%d", &n); assert(n > 0); move(n, 'A', 'B', 'C'); return 0; } void move(int n, char a, char b, char c) { if (n == 1) { ++cnt; printf("%d : %c ==> %c\n", cnt, a, c); } else { move(n-1, a, c, b); ++cnt; printf("%d : %c ==> %c\n", cnt, a, c); move(n-1, b, a, c); } } | cs |
C/C++ 언어 하노이 탑/타워 예제
'C,C++ > 예제' 카테고리의 다른 글
C/C++ 언어 링크드 리스트를 이용한 스택에서의 push와 pop 예제 (0) | 2016.01.29 |
---|---|
C/C++ 언어 키보드에서 입력한 문자의 ASCII 코드 값의 2진수 출력 (0) | 2016.01.29 |
C/C++ 언어 링크드 리스트를 이용한 큐에서의 삽입과 삭제 (0) | 2016.01.29 |
C/C++ 언어 이진 트리를 생성하고 전위, 중위, 후위 순회 연산 결과를 구하는 예제 (0) | 2016.01.28 |
C/C++ 언어 fopen, fscanf, fprintf 문자 입력 받아서 파일에 저장하고 화면에도 출력 (0) | 2016.01.28 |