trang chủ / bài tập / hanoicses

Tháp Hà Nội

Đề bài

Mô tả

Có ba cọc (đánh số 1, 2, 3) và n chiếc đĩa có kích thước khác nhau. Ban đầu, tất cả các đĩa được xếp trên cọc 1 theo thứ tự từ lớn đến nhỏ (đĩa lớn ở dưới, đĩa nhỏ ở trên). Mục tiêu là chuyển toàn bộ đĩa sang cọc 3.

Quy tắc:

  • Mỗi lần chỉ được di chuyển một đĩa (đĩa trên cùng của một cọc).
  • Không được đặt đĩa lớn lên trên đĩa nhỏ hơn.

Hãy tìm cách di chuyển với số bước ít nhất.

Dữ liệu vào

Một dòng duy nhất chứa số nguyên n.

Dữ liệu ra

Dòng đầu tiên in ra k — số bước di chuyển tối thiểu.

  • k dòng tiếp theo, mỗi dòng gồm hai số nguyên ab: di chuyển đĩa trên cùng từ cọc a sang cọc b.

Ràng buộc

  • 1n16

Ví dụ

Input Output Giải thích
2 3
1 2
1 3
2 3
Cần 3 bước: cọc 1→2, cọc 1→3, cọc 2→3.
1 1
1 3
Chỉ cần 1 bước.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0