Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C giải bài toán Tháp Hà Nội (Tower of Hanoi)


Tháp Hà Nội là câu đố toán học. Gồm 3 cọc và số đĩa kích thước khác nhau trượt vào cọc. Bắt đầu đĩa xếp chồng gọn theo kích thước tăng dần trên một cọc, nhỏ nhất ở trên. Mục tiêu chuyển toàn bộ chồng sang cọc thứ ba.

Quy tắc:

  • Chỉ chuyển một đĩa mỗi lần.

  • Mỗi lần lấy đĩa trên cùng của một cọc đặt lên cọc khác.

  • Không đặt đĩa lớn lên đĩa nhỏ.

Mẫu

Đầu vào - 3

Đầu ra - A to B, A to C, B to C, A to B, C to A, C to B, A to B

Giải thích - dùng hàm đệ quy 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');
}

Kết quả

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