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