티스토리 뷰

C/C++

하노이탑 함수로 구현하기

긴자손 2009.10.19 19:47

#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부터가 생각을 하셔야 하는데요.. 머~~ 위에 소스에서 처럼 계속 재귀호출을 하면서

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

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

하네요~

신고
댓글
댓글쓰기 폼
공지사항
Total
13,210
Today
0
Yesterday
10
«   2017/12   »
          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            
글 보관함