Problème
Afficher l’original (anglais)Utilisez autant de chaque valeur fournie que nécessaire pour former exactement le montant. Comptez les combinaisons, pas les arrangements : deux façons utilisant le même nombre de chaque pièce comptent comme une seule combinaison. Les valeurs sont distinctes et strictement positives.
Implémentez coin_sums(amount, coins).
Entrée
amount : Le montant total à former.
coins : Les valeurs distinctes disponibles.
Sortie
Retournez le nombre de combinaisons sans ordre.
Contraintes
0 ≤ amount ≤ 200. Il y a de 0 à 10 valeurs distinctes, chacune comprise entre 1 et 200. Tous les résultats tiennent dans un entier signé 64 bits. Pour amount = 0, il existe une seule façon : ne choisir aucune pièce.
Exemples
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
Les combinaisons sont : quatre pièces de 1, deux pièces de 1 avec une pièce de 2, et deux pièces de 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
Toute somme de pièces de valeur 2 est paire, donc 3 est impossible.
Références
Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.