Bài 10
Đề bài: Viết hàm đệ quy giải bài toán Thap Ha Noi.
Co 3 cot: A (nguon), B (trung gian), C (dich).
Di chuyen n dia từ A sang C, moi lan chi di 1 dia,
dia lớn không được năm trên dia nho.
In tung buoc di chuyen.
Ví dụ: n = 3
Kết quả:
Di chuyen dia 1: A -> C
Di chuyen dia 2: A -> B
Di chuyen dia 1: C -> B
Di chuyen dia 3: A -> C
Di chuyen dia 1: B -> A
Di chuyen dia 2: B -> C
Di chuyen dia 1: A -> C
Tong số bước: 7
Đăng nhập để giáo viên có thể giao bài và nhận bài nộp của bạn.
Câu trả lời
dem_buoc = 0
def thap_ha_noi(n, nguon, dich, trung_gian):
global dem_buoc
if n == 1:
dem_buoc += 1
print(f" Di chuyen dia 1: {nguon} -> {dich}")
return
thap_ha_noi(n - 1, nguon, trung_gian, dich) # chuyen n-1 dia sang trung gian
dem_buoc += 1
print(f" Di chuyen dia {n}: {nguon} -> {dich}")
thap_ha_noi(n - 1, trung_gian, dich, nguon) # chuyen n-1 dia tu trung gian sang dich
n = int(input("Nhap so dia n (nen <= 4): "))
print(f"\nCac buoc giai Thap Ha Noi voi {n} dia:")
thap_ha_noi(n, "A", "C", "B")
print(f"\nTong so buoc: {dem_buoc} (= 2^{n} - 1 = {2**n - 1})")
================================================================
PHAN 2: 10 BAI TAP - KIEU DU LIEU NANG CAO (dict, tuple, set)
================================================================