하노이 탑은 수학 퍼즐입니다. 그것은 세 개의 막대와 모든 막대에 미끄러질 수 있는 다양한 크기의 여러 디스크로 구성되어 있습니다. 퍼즐은 하나의 막대에 크기가 오름차순으로 깔끔하게 쌓인 디스크로 시작하고 가장 작은 막대는 맨 위에 있습니다. 세 번째 로드에서 동일한 스택을 얻어야 합니다.
퍼즐의 목적은 다음과 같은 간단한 규칙에 따라 전체 스택을 다른 막대로 옮기는 것입니다-
-
한 번에 하나의 디스크만 이동할 수 있습니다.
-
각 이동은 스택 중 하나에서 상위 디스크를 가져와 다른 스택 위에 놓는 것으로 구성됩니다. 즉, 디스크가 스택의 최상위 디스크인 경우에만 디스크를 이동할 수 있습니다.
-
더 작은 디스크 위에 디스크를 놓을 수 없습니다.
샘플
입력 - 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