Crédito a Geobits en TNB por la idea
Una publicación sin suficientes detalles recientemente presentó un juego interesante:
2 niños se sientan frente a una variedad de dulces. Cada pieza de dulce está numerada del 1 al x, xsiendo la cantidad total de dulce presente. Hay exactamente 1 aparición de cada número.
El objetivo del juego es que los niños coman dulces y multipliquen los valores de los dulces que han comido para llegar a un puntaje final, ganando el puntaje más alto.
Sin embargo, la publicación original omitió información clave, como cómo se seleccionan los dulces, por lo que los niños de nuestra historia decidieron que el niño mayor es el primero y puede comer hasta la mitad de los dulces, sin embargo, una vez que anuncia el final de su turno, No puede cambiar de opinión.
A uno de los niños en este juego no le gustan los dulces, por lo que quiere comer lo menos posible, y una vez vio a su padre escribir un código una vez, y cree que puede usar las habilidades obtenidas de eso para calcular la cantidad de dulces necesita comer para asegurar la victoria, mientras sigue comiendo lo menos posible.
El reto
Dada la cantidad total de dulces x, su programa o función debería generar la menor cantidad de dulces que tiene que comer para garantizar la victoria n, incluso si su oponente se come todos los dulces restantes.
Naturalmente, los números más grandes hacen números más grandes, así que sea cual sea la cantidad que le des, él se comerá los nnúmeros más grandes.
Las normas
xsiempre será un número entero positivo en el rango0 < x! <= ldondelestá el límite superior de las capacidades de manejo de números de su idioma- Se garantiza que el niño siempre comerá los
nnúmeros más grandes, por ejemplo parax = 5yn = 2, comerá4y5
Casos de prueba
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]))
Puntuación
Desafortunadamente, nuestro valiente concursante no tiene nada con lo que escribir su código, por lo que tiene que organizar los dulces en los caracteres del código, como resultado, su código debe ser lo más pequeño posible, ¡el código más pequeño en bytes gana!
x = 0También se debe manejar, 0! = 1¿ desde entonces ? (¿Quizás xtambién debería especificarse como un número entero positivo?)