Première question ici, ne me criez pas dessus s'il s'agit d'un doublon ou d'un mauvais défi.
introduction
J'ai moi-même pensé à ce défi, et il semble être un bon casse-tête de base pour les golfeurs débutants. Cela pourrait également m'aider à décider quelle langue de golf de code apprendre.
Défi
Étant donné un tableau d'entiers inférieurs ou égaux à n
, affichez ou renvoyez le nombre minimum de nombres du tableau qui résument exactement n
.
Vous pouvez choisir d'écrire une fonction ou un programme complet.
Contribution
Vous pouvez assumer en toute sécurité 0 <= n < 2^31
.
Prenez un tableau ou une liste de tout type ( vector
car C ++ ou Java LinkedList
sont autorisés), avec n
et un paramètre facultatif length
, qui spécifie la longueur du tableau.
Vous pouvez également prendre l'entrée comme une chaîne séparée n
par des espaces, séparée par une virgule ou un espace:
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 c'est plus facile.
Production
Générez une sortie ou renvoyez le nombre minimal de nombres du tableau qui résument exactement n
. En utilisant l'exemple ci-dessus:
1 5 7 3 7 3 6 3 2 6 3,10
Votre programme devrait imprimer:
2
parce que le nombre minimum de nombres qui se résume à 10
est 2
(7
et 3
).
Dans le cas où il n'y a pas de solution, imprimez ou retournez soit un négatif 0
, "Pas de solution" (bien que ce ne serait pas intelligent),∞
(comme suggéré), ou toute autre valeur falsifiée, à l'exception d'une chaîne vide.
Exemple d'entrée et de sortie
Contribution:
1 5 7 3 7 3 6 3 2 6 3,10
143 1623 1646 16336 1624 983 122,18102
5 6 9,12
Production:
2
3
-1
Notation
C'est le code-golf, donc le code le plus court en octets gagne.
La meilleure réponse sera acceptée à Noël.
false
des cas sans solutions?