간단 한 한 노 타 문제 해법 코드
1373 단어 한 노 타
제목 설명:탑 이 하나 있 고 탑 안에 A,B,C 세 개의 기둥 이 있다.처음에 A 기둥 에 n 개의 접시 가 있 었 는데 순서대로 큰 것 에서 작은 것,아래 에서 위로 쌓 여 있 었 고 모두 C 기둥 으로 옮 겨 달라 고 요구 했다.이동 과정 에서 B 기둥 을 이용 할 수 있 으 나 매번 한 접시 로 만 옮 길 수 있 고 세 기둥 위 에 항상 큰 접시 가 아래 에 있 고 작은 접시 가 위 에 있 는 상 태 를 유지 해 야 한다.프로 그래 밍 출력 이동 절 차 를 요구 합 니 다.
코드 는 다음 과 같 습 니 다.
#include<stdio.h>
int move(char one,char two)// , , a-->c. , n
{
printf("%c --> %c
",one,two);
}
int hanoi(int n,char one,char two,char three)//
{
int move(char one,char two);
if(n==1)// , a c ,
move(one,three);
else{ //
hanoi(n-1,one,three,two);// c n-1 a b
move(one,three); // a , c
hanoi(n-1,two,one,three);// b n-1 a c ,
}
}
int main()
{
int n;
char a,b,c;
while(scanf("%d",&n)!=EOF)//
hanoi(n,'a','b','c');
}