#include <stdio.h>

void hanoi_tower(int n, char from, char temp, char to)
{
 if(n == 1)
 {
  printf(\"원판 1을 %c에서 %c로 옮겼습니다.\\n\", from, to);
 }
 else
 {
  hanoi_tower(n - 1, from, to, temp);
  printf(\"원판 %d를 %c에서 %c로 옮겼습니다.\\n\", n, from, to);
  hanoi_tower(n - 1, temp, from, to);
 }
}

void main()
{
 char from = \'A\';
 char temp = \'B\';
 char to = \'C\';

 hanoi_tower(4, from, temp, to);
}

이게 너무 소스가 직관적이라 좀 당황스럽네요..... 각 줄마다 마다의 직관적 의미라면

파악할 수 있겠는데, 뜯어 들어가면 좀 복잡해서......... 재귀 호출의 경우는 그냥 직관적으로 소스를 이해하면 될려나요??? ㅋ