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 ( vectorpara C ++ o Java LinkedListestán permitidos), junto con nun parámetro opcional length, que especifica la longitud de la matriz.
También puede tomar la entrada como una cadena separada npor 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 10es 2( 7y 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.
falsepara casos sin soluciones?