Menu
CoddyTech

Bài toán đổi tiền

Bài học 8 trên 15 trong khóa học Nhập môn quy hoạch động của Coddy.

Bài toán đổi tiền xu là một bài toán kinh điển trong lập trình động. Cho một tập hợp các đồng xu có mệnh giá khác nhau và một tổng số tiền, nhiệm vụ là tìm số đồng xu ít nhất cần dùng để tạo thành số tiền đã cho.

Ví dụ, giả sử ta có các đồng xu với mệnh giá [1, 5, 10] và muốn tạo thành số tiền 15. Số đồng xu ít nhất cần dùng là 2 (một đồng 10 và một đồng 5).

Để giải bài toán này bằng lập trình động, ta có thể tạo một bảng với các hàng biểu thị mệnh giá của các đồng xu và các cột biểu thị số tiền từ 0 đến tổng số tiền đã cho. Sau đó, ta điền vào bảng theo cách từ dưới lên bằng cách tính số đồng xu ít nhất cần dùng để tạo thành mỗi số tiền, sử dụng các đồng xu của từng mệnh giá.

challenge icon

Thử thách

Trung bình

Viết một chương trình nhận hai đầu vào: danh sách các mệnh giá tiền xu và số tiền mục tiêu, rồi trả về số lượng tiền xu ít nhất cần dùng để tạo thành số tiền mục tiêu.

Ví dụ, với các mệnh giá [1, 5, 10] và số tiền mục tiêu 15, đầu ra phải là 2.

Tự làm thử

def min_coins(coins, target):
    # Viết code vào đây

Tất cả bài học trong Nhập môn quy hoạch động

Tự luyện tập: Trình biên dịch Python online