컴퓨터공학 💻 도서관📚
하노이 탑 (재귀함수) 본문
예시) n 이 5일때
3번을 from 에서 tmp로 -->
4번을 from 에서 tmp(임시) 로 --> 4번을 from 에서 to로 (printf)
4번을 tmp에서 to로 -->
5번을 from 에서 to 로 (printf)
3번을 from 에서 tmp로 -->
4번을 tmp 에서 to 로 --> 4번을 from 에서 to로 (printf)
4번을 tmp에서 to로 -->
#include <stdio.h>
#pragma warning(disable : 4996)
void hanoi_tower(int n, char from, char tmp, char to) {
if (n == 1)
printf("원판 1을 %c에서 %c로 옮긴다.\n", from, to);
else {
hanoi_tower(n - 1, from, to, tmp);
printf("원판 %d를 %c에서 %c로 옮긴다.\n", n, from, to);
hanoi_tower(n - 1, tmp, from, to);
}
}
int main(void) {
hanoi_tower(3, 'A', 'B', 'C');
return 0;
}
'💯🌊자료구조&알고리즘 > C언어' 카테고리의 다른 글
이중연결리스트 (C언어) (0) | 2025.04.04 |
---|---|
단일 연결 리스트 (0) | 2025.03.31 |
재귀함수 (C언어) (0) | 2025.02.12 |
Comments