본문 바로가기
C언어

하노이탑 함수로 구현하기

by 긴자손 2009. 10. 19.
728x90
반응형

#include <stdio.h>

void hanoi_tower(int n, char a, char b, char c)

 {

if( n==1 )

printf("%c -> %c\n",a,c);

else {

hanoi_tower(n-1, a, c, b);

printf("%c -> %c\n",a, c);

hanoi_tower(n-1, b, a, c);

 }

}

void main() {

int x;

scanf("%d",&x);

hanoi_tower(x, '1', '2', '3');

 }


하노이 탑을 구현한것입니다...

흠~!! 그냥 대충 보셔도 아시겠죠??? 간단하게 하노이탑은 

a b c 가 있으면 갯수에 따라서 a --->> c로 가는 것입니다. 

일종에 b는 임시버퍼라고 생각을 하시면 쉬울꺼 같네요~~~

그럼 1인경우는 할께 없으니깐... 그냥 바로 끝내면 되겠죠? ㅋㅋ

2부터가 생각을 하셔야 하는데요.. 머~~ 위에 소스에서 처럼 계속 재귀호출을 하면서

넘어가는 매걔변수값을 살짝 살짝 다르게 하는게 포인트입니다...^^

실제로 돌려보시면 하나하나 다 보이게 구현을 해놨으니 한번 돌려보시면 문제가 없을 듯

하네요~

728x90
반응형