Tất cả thử thách
Trung bình 0 đã giải Tỷ lệ chấp nhận 0%

Đếm Số Cách Kết Hợp Đồng Xu

Đếm số cách tạo ra một số tiền với số lượng không giới hạn các đồng xu có mệnh giá cho trước.

Sử dụng bất kỳ số lượng nào của mỗi mệnh giá được cung cấp để tạo ra đúng số tiền. Đếm số cách kết hợp, không tính thứ tự: hai cách sắp xếp sử dụng cùng số lượng mỗi loại đồng xu được coi là một cách. Các mệnh giá là khác nhau và dương.

Cài đặt coin_sums(amount, coins).

Đầu vào

amount: Tổng số tiền cần tạo.

coins: Các mệnh giá khác nhau có sẵn.

Đầu ra

Trả về số lượng cách kết hợp không phân biệt thứ tự.

Ràng buộc

0 ≤ amount ≤ 200. Có từ 0 đến 10 mệnh giá khác nhau, mỗi mệnh giá từ 1 đến 200. Tất cả số lượng đều vừa với kiểu số nguyên có dấu 64-bit. Trường hợp amount = 0 có một cách duy nhất: không chọn đồng xu nào.

Ví dụ

Ví dụ 1
Đầu vào:
coins = [1, 2]
amount = 4

Kết quả mong đợi:
expected = 3
Đầu vào:
std::vector<long long> coins = {1, 2};
long long amount = 4;

Kết quả mong đợi:
long long expected = 3;
Đầu vào:
long[] coins = new long[] {1, 2};
long amount = 4;

Kết quả mong đợi:
long expected = 3;

Giải thích

Các cách kết hợp là bốn đồng 1, hai đồng 1 với một đồng 2, và hai đồng 2.

Ví dụ 2
Đầu vào:
coins = [2]
amount = 3

Kết quả mong đợi:
expected = 0
Đầu vào:
std::vector<long long> coins = {2};
long long amount = 3;

Kết quả mong đợi:
long long expected = 0;
Đầu vào:
long[] coins = new long[] {2};
long amount = 3;

Kết quả mong đợi:
long expected = 0;

Giải thích

Tổng các đồng xu mệnh giá 2 luôn là số chẵn, nên không thể tạo ra 3.

Tham khảo

Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.