1273 - Tháp Hà Nội

Tạo bởi: CLB Olympic Tin học HUTECH

Mô tả yêu cầu

Bài toán Tháp Hà Nội là một bài toán trong lĩnh vực giải thuật. Bài toán được đặt tên theo tên của thành phố Hà Nội, nơi được cho là nơi phát minh ra trò chơi này.

Mô tả bài toán:

Bài toán gồm 3 cột (đóng vai trò như 3 chỗ đặt đĩa), n đĩa được đánh số từ 1 đến n, có kích thước khác nhau, đặt trên cột 1 sao cho đĩa nhỏ ở trên và đĩa lớn ở dưới. Yêu cầu di chuyển toàn bộ n đĩa từ cột 1 sang cột 3 sao cho không đặt đĩa lớn hơn lên đĩa nhỏ hơn trong quá trình di chuyển các đĩa.

bai-toan-thap-ha-noi-tower-of-hanoi-2.gif

Giải thuật:

  • Bước 1: Di chuyển n-1 đĩa từ cột 1 sang cột 2.
  • Bước 2: Di chuyển đĩa thứ n từ cột 1 sang cột 3.
  • Bước 3: Di chuyển n-1 đĩa từ cột 2 sang cột 3.

Với n > 1, các bước 13 được thực hiện bằng cách đệ quy với n - 1 thay cho n.

Dữ liệu vào

Số đĩa n (n < 10)

Dữ liệu ra

Hướng dẫn di chuyển các đĩa để chuyển tất cả sang cột 3 với định dạng sau: Chuyen dia d tu cot x sang cot y (Xem chi tiết ở ví dụ mẫu)

Ví dụ

Dữ liệu vào Sao chép
1
Dữ liệu ra Sao chép
Chuyen dia 1 tu cot 1 sang cot 3
Dữ liệu vào Sao chép
2
Dữ liệu ra Sao chép
Chuyen dia 1 tu cot 1 sang cot 2
Chuyen dia 2 tu cot 1 sang cot 3
Chuyen dia 1 tu cot 2 sang cot 3
Dữ liệu vào Sao chép
3
Dữ liệu ra Sao chép
Chuyen dia 1 tu cot 1 sang cot 3
Chuyen dia 2 tu cot 1 sang cot 2
Chuyen dia 1 tu cot 3 sang cot 2
Chuyen dia 3 tu cot 1 sang cot 3
Chuyen dia 1 tu cot 2 sang cot 1
Chuyen dia 2 tu cot 2 sang cot 3
Chuyen dia 1 tu cot 1 sang cot 3
Đăng nhập để làm bài
Thông tin
Giới hạn thời gian 1 giây
Giới hạn bộ nhớ 128 MB