NTMK Winter Round 2021 - Tháp Hà Nội

Xem dạng PDF

SUBMIT SOLUTION

ID: ntmk_winter_2021_towerofhanoi

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Java 3.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Nguồn bài:
Nguyen Thi Minh Khai Winter Round 2021
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong bài toán Tháp Hà Nội, có ~N~ đĩa theo thứ tự từ nhỏ đến lớn đang nằm ở cột ~A~ như hình bên dưới:

Cần chuyển ~N~ đĩa trên từ cột A sang cột C (lấy cột B làm cột trung gian) theo quy tắc:

  • Mỗi lần chỉ được chuyển một đĩa.
  • Đĩa nhỏ phải nằm trên đĩa lớn tại bất kì thời điểm nào trong quá trình chuyển.

Vậy để chuyển ~N~ đĩa từ cột A sang cột C theo quy tắc trên thì phải chuyển ít nhất bao nhiêu lần?

Input Specification

  • Một số nguyên ~N~ duy nhất (~1 \leq N \leq 100~).

Output Specification

  • In ra số lần chuyển tối thiểu để chuyển hết ~N~ đĩa từ cột A sang cột C. Vì kết quả có thể rất lớn nên chỉ in ra kết quả sau khi chia lấy dư cho ~10^9 + 7~.

Sample Case(s)

Input #1:
3
Output #1:
7
Explanation:
  • Ở ví dụ thứ nhất, vì ~N = 3~ nên để chuyển ~3~ đĩa từ cột A sang cột C thì cần ít nhất ~7~ bước. Vì ~7~ chia lấy dư cho ~10^9 + 7~ vẫn bằng ~7~ nên in ra màn hình ~7~.

Bình luận

Hãy đọc nội quy trước khi bình luận.


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