Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

하노이 타워 C 프로그램


하노이 탑은 수학 퍼즐입니다. 그것은 세 개의 막대와 모든 막대에 미끄러질 수 있는 다양한 크기의 여러 디스크로 구성되어 있습니다. 퍼즐은 하나의 막대에 크기가 오름차순으로 깔끔하게 쌓인 디스크로 시작하고 가장 작은 막대는 맨 위에 있습니다. 세 번째 로드에서 동일한 스택을 얻어야 합니다.

퍼즐의 목적은 다음과 같은 간단한 규칙에 따라 전체 스택을 다른 막대로 옮기는 것입니다-

  • 한 번에 하나의 디스크만 이동할 수 있습니다.

  • 각 이동은 스택 중 하나에서 상위 디스크를 가져와 다른 스택 위에 놓는 것으로 구성됩니다. 즉, 디스크가 스택의 최상위 디스크인 경우에만 디스크를 이동할 수 있습니다.

  • 더 작은 디스크 위에 디스크를 놓을 수 없습니다.

샘플

입력 - 3

출력 - A에서 B로

A ~ C

B에서 C로

A에서 B로

C에서 A로

C에서 B로

A to B 설명 - 재귀 함수를 사용하고 하노이의 탑을 풉니다.

예시

#include<stdio.h>
void TOH(int n,char x,char y,char z) {
   if(n>0) {
      TOH(n-1,x,z,y);
      printf("\n%c to %c",x,y);
      TOH(n-1,z,y,x);
   }
}
int main() {
   int n=3;
   TOH(n,'A','B','C');
}

출력

A to B
A to C
B to C
A to B
C to A
C to B
A to B