Crédit aux Geobits en TNB pour l'idée
Un article sans suffisamment de détails a récemment proposé un jeu intéressant:
2 enfants sont assis devant une gamme de bonbons. Chaque bonbon est numéroté de 1 à x
, avec x
la quantité totale de bonbons présents. Il y a exactement 1 occurrence de chaque nombre.
Le but du jeu est que les enfants mangent des bonbons et multiplient les valeurs des bonbons qu'ils ont mangés pour arriver à un score final, le score le plus élevé gagnant.
Cependant, le message d'origine a manqué des informations clés, telles que la façon dont les bonbons sont sélectionnés, de sorte que les enfants de notre histoire ont décidé que le plus âgé allait d'abord et pouvait manger jusqu'à la moitié des bonbons, mais une fois qu'il annonçait la fin de son tour, il ne peut pas changer d'avis.
Un des enfants de ce jeu n'aime pas les bonbons, alors il veut manger le moins possible, et il a vu son père écrire une fois du code une fois, et il peut utiliser les compétences acquises pour calculer la quantité de bonbons il a besoin de manger pour assurer la victoire, tout en mangeant le moins possible.
Le défi
Étant donné le nombre total de bonbons x
, votre programme ou fonction devrait produire la plus petite quantité de bonbons qu'il doit manger pour assurer la victoire n
, même si son adversaire mange tous les bonbons restants.
Naturellement, de plus grands nombres font de plus grands nombres, donc quelle que soit la quantité que vous lui donnerez, il mangera le n
plus grand nombre.
Les règles
x
sera toujours un entier positif dans la plage0 < x! <= l
oùl
est la limite supérieure des capacités de gestion des nombres de votre langue- Il est garanti que l'enfant mange toujours le
n
plus grand nombre, par exemple pourx = 5
etn = 2
, il mange4
et5
Cas de test
x = 1
n = 1
(1 > 0)
x = 2
n = 1
(2 > 1)
x = 4
n = 2
(3 * 4 == 12 > 1 * 2 == 2)
x = 5
n = 2
(4 * 5 == 20 > 1 * 2 * 3 == 6)
x = 100
n = 42
(product([59..100]) > product([1..58]))
x = 500
n = 220
(product([281..500]) > product([1..280]))
Notation
Malheureusement, notre courageux concurrent n'a rien avec qui écrire son code, il doit donc disposer les bonbons en caractères du code, par conséquent, votre code doit être aussi petit que possible, le plus petit code en octets gagne!
x = 0
également être géré, depuis 0! = 1
? (Peut-être x
devrait - on également spécifier un entier positif?)