Primera pregunta aquí, no me grites si esto es un duplicado o un mal desafío.
Introducción
Pensé en este desafío yo mismo, y parece ser un buen rompecabezas básico para los golfistas principiantes. También podría ayudarme a decidir qué lenguaje de golf de código aprender.
Desafío
Dada una matriz de enteros que son menores o iguales que n
, generar o devolver el número mínimo de números de la matriz que suman exactamente n
.
Puede elegir escribir una función o un programa completo.
Entrada
Puede asumir con seguridad 0 <= n < 2^31
.
Tome una matriz o lista de cualquier tipo ( vector
para C ++ o Java LinkedList
están permitidos), junto con n
un parámetro opcional length
, que especifica la longitud de la matriz.
También puede tomar la entrada como una cadena separada n
por espacios, separada por una coma o un espacio:
1 5 7 3 7 3 6 3 2 6 3,10
1 5 7 3 7 3 6 3 2 6 3 10
Si es más fácil.
Salida
Imprima o devuelva el número mínimo de números de la matriz que suman exactamente n
. Usando el ejemplo anterior:
1 5 7 3 7 3 6 3 2 6 3,10
Su programa debe imprimir:
2
porque el número mínimo de números que suman 10
es 2
( 7
y 3
).
En el caso de que no haya solución, imprima o devuelva un negativo, 0
"Sin solución" (aunque eso no sería inteligente), ∞
(como se sugiere) o cualquier otro valor falso, con la excepción de una cadena vacía.
Ejemplo de entrada y salida
Entrada:
1 5 7 3 7 3 6 3 2 6 3,10
143 1623 1646 16336 1624 983 122,18102
5 6 9,12
Salida:
2
3
-1
Puntuación
Este es el código de golf, por lo que gana el código más corto en bytes.
La respuesta principal será aceptada en Navidad.
false
para casos sin soluciones?