#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);
}
이게 너무 소스가 직관적이라 좀 당황스럽네요..... 각 줄마다 마다의 직관적 의미라면
파악할 수 있겠는데, 뜯어 들어가면 좀 복잡해서......... 재귀 호출의 경우는 그냥 직관적으로 소스를 이해하면 될려나요??? ㅋ
하노이의탑자체가 복잡하지않은데
종이에 그려봐여
그러니까 그 과정은 이해하겠는데요........ 소스 자체는 엄청 직관적이잖아요... 그러면 재귀호출로 소스를 짤때는 이런 직관적인 느낌으로 짜는게 맞는건가요????
저게 직관적임? 직관적이라는거는 판단이나 추리같은거 안하고 바로 파악되는 그런느낌인데. 재귀는 어느정도 머리에 그려져야죠.
아 ㅋㅋㅋ 감사합니다 ㅎㅎㅎㅎㅎㅎ
이미 수학적으로 분석이 된 것을 코드로 그대로 옮긴 것에 불과하니 당연히 코드만 봐서는 이해가 절대 안되지.