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:
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
Asang cộtC. 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
Asang cộtCthì 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