Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chương trình C cho Tháp Hà Nội


Tháp Hà Nội là một câu đố toán học. Nó bao gồm ba thanh và một số đĩa có kích thước khác nhau có thể trượt lên bất kỳ thanh nào. Câu đố bắt đầu với các đĩa xếp thành một chồng gọn gàng theo thứ tự kích thước tăng dần trên một thanh, thanh nhỏ nhất ở trên cùng. Chúng ta phải lấy cùng một ngăn xếp trên thanh thứ ba.

Mục tiêu của câu đố là di chuyển toàn bộ ngăn xếp sang một thanh khác, tuân theo các quy tắc đơn giản sau đây−

  • Mỗi lần chỉ có thể di chuyển một đĩa.

  • Mỗi lần di chuyển bao gồm việc lấy đĩa trên từ một trong các ngăn xếp và đặt nó lên trên một ngăn xếp khác, tức là chỉ có thể di chuyển đĩa nếu đó là đĩa trên cùng của một ngăn xếp.

  • Không có đĩa nào có thể được đặt trên đĩa nhỏ hơn.

Mẫu

Đầu vào - 3

Đầu ra - A đến B

A đến C

B đến C

A đến B

C đến A

C đến B

A to B Giải thích - sử dụng hàm đệ quy và giải tháp Hà Nội.

Ví dụ

#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');
}

Đầu ra

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