Todos los desafíos
Intermedio 0 resueltos 0% de aceptación

Contar combinaciones de monedas

Cuenta las formas de obtener una cantidad usando monedas de denominaciones especificadas, con uso ilimitado de cada una.

Usa cualquier cantidad de cada denominación suministrada para obtener exactamente la cantidad indicada. Cuenta combinaciones, no ordenamientos: dos arreglos que usan la misma cantidad de cada moneda se consideran la misma forma. Las denominaciones son distintas y positivas.

Implementa coin_sums(amount, coins).

Entrada

amount: La cantidad total a obtener.

coins: Las denominaciones distintas disponibles.

Salida

Devuelve el número de combinaciones sin importar el orden.

Restricciones

0 ≤ amount ≤ 200. Hay entre 0 y 10 denominaciones distintas, cada una entre 1 y 200. Todos los conteos caben en un entero con signo de 64 bits. Para amount 0 hay una forma: no elegir ninguna moneda.

Ejemplos

Ejemplo 1
Entrada:
coins = [1, 2]
amount = 4

Salida esperada:
expected = 3
Entrada:
std::vector<long long> coins = {1, 2};
long long amount = 4;

Salida esperada:
long long expected = 3;
Entrada:
long[] coins = new long[] {1, 2};
long amount = 4;

Salida esperada:
long expected = 3;

Explicación

Las combinaciones son: cuatro monedas de 1, dos monedas de 1 con una de 2, y dos monedas de 2.

Ejemplo 2
Entrada:
coins = [2]
amount = 3

Salida esperada:
expected = 0
Entrada:
std::vector<long long> coins = {2};
long long amount = 3;

Salida esperada:
long long expected = 0;
Entrada:
long[] coins = new long[] {2};
long amount = 3;

Salida esperada:
long expected = 0;

Explicación

Cualquier suma usando solo monedas de valor 2 es par, así que 3 es imposible.

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.