간단 한 한 노 타 문제 해법 코드

1373 단어 한 노 타
예전 에 배 운 것 이 튼튼 하지 않 았 는데 지금 주 워 도 좋 습 니 다.한 노 타 는 원래 C 언어 로 문 을 열 면 배 운 것 이 었 습 니 다.그런데 수업 시간 에 진심으로 알 아들 을 수 없 었 습 니 다.대학 2 학년 이 되 어서 야 그것 이 어떻게 된 일 인지 알 게 되 었 습 니 다.제 가 느 낀 프로 그래 밍 은 정말 창호지 입 니 다.그런데 터 뜨리 는 데 시간 이 걸 려 서 흡수 해 야 합 니 다.
제목 설명:탑 이 하나 있 고 탑 안에 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');
    }

좋은 웹페이지 즐겨찾기