Tous les défis
Moyen 0 résolus 0 % de réussite

Count Coin Combinations

Count ways to make an amount with unlimited coins of specified denominations.

Use any number of each supplied denomination to make amount exactly. Count combinations, not orderings: two arrangements using the same counts of each coin are the same way. Denominations are distinct and positive.

Implement coin_sums(amount, coins).

Input

amount: The total amount to make.

coins: The available distinct denominations.

Output

Return the number of unordered combinations.

Contraintes

0 ≤ amount ≤ 200. There are 0 through 10 distinct denominations, each from 1 through 200. All counts fit signed 64-bit. Amount 0 has one way: choose no coins.

Exemples

Exemple 1
Entrée :
coins = [1, 2]
amount = 4

Sortie attendue :
expected = 3
Entrée :
std::vector<long long> coins = {1, 2};
long long amount = 4;

Sortie attendue :
long long expected = 3;
Entrée :
long[] coins = new long[] {1, 2};
long amount = 4;

Sortie attendue :
long expected = 3;

Explication

The combinations are four 1s, two 1s with one 2, and two 2s.

Exemple 2
Entrée :
coins = [2]
amount = 3

Sortie attendue :
expected = 0
Entrée :
std::vector<long long> coins = {2};
long long amount = 3;

Sortie attendue :
long long expected = 0;
Entrée :
long[] coins = new long[] {2};
long amount = 3;

Sortie attendue :
long expected = 0;

Explication

Any sum of 2-valued coins is even, so 3 is impossible.

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.