¿Cansado de preguntarte siempre cuántos Pokémon más necesitas atrapar para obtener esas evoluciones de alto nivel? ¡Extrañar más! ¡Ahora escribirá un programa o función completa para calcularlo por usted!
El reto:
Como entrada, su programa recibirá una lista de los costos en dulces para evolucionar a un Pokémon al siguiente nivel. (Esta lista puede estar separada por cualquier delimitador de su elección, o como argumentos de función). Luego, tu programa devolverá o imprimirá la cantidad de Pokémon que debes atrapar, incluido el que se desarrollará, para evolucionar a través de todos los niveles dados.
¿Cómo se calcula esto? Así:
1. Suma todos los costos de dulces: 12 + 50 = 62
2. Resta 3 dulces del total, esto es del único Pokémon que conservas para evolucionar: 62 - 3 = 59
3. Divide este número entre 4 (3 para atrapar, 1 para dárselo al Profesor), siempre tomando el ceil()
resultado: ceil(59/4) = 15
4. Finalmente, suma 1 a este total para obtener el número total de Pokémon que debes atrapar, ¡16!
Ejemplo Input -> Output
:
[4] -> 2
[50] -> 13
[12, 50] -> 16
[25, 100] -> 32
[19, 35, 5, 200] -> 65
Victorioso:
La aplicación ya ha ocupado la mayor parte del espacio en su teléfono, por lo que su programa debe ser lo más breve posible. ¡Se aceptará el programa completo o la función con el recuento de bytes más pequeño en dos semanas! (¡con cualquier vínculo resuelto por la entrada presentada más temprano!)
floor(Sum(L)/4)+1
? La fórmula actual no funciona para sumas divisibles por 4. Por ejemplo[400]
, devolvería 100, cuando en realidad debe ser 101 para que evolucione el extra.Respuestas:
05AB1E , 4 bytes
Explicación
Pruébalo en línea
fuente
Jalea,
54 bytesPruébalo en línea!
S
um, entero dividido:
por4
e incrementado‘
.fuente
[4]
.Brain-Flak 112 bytes
¡Pruébelo en línea!
Explicación
Suma la pila, resta uno, divide entre cuatro y agrega uno.
fuente
[4]
.C # REPL, 15 bytes
Lanza a
Func<IEnumerable<int>, int>
.fuente
En realidad, 4 bytes
Pruébalo en línea!
Explicación:
fuente
Brachylog , 5 bytes
Pruébalo en línea!
Explicación
Una respuesta muy original ...
fuente
Python 2, 21 bytes
Ideone it!
Fórmula:
((sum(a)-1)//4)+1
donde//
estáfloor-div
.fuente
[4]
.BASH (sed + bc) 19
La entrada es una
+
lista separada en stdinEg:
echo '(19+35+5+200)'| sed 's~)~+4)/4~'|bc
fuente
Haskell, 17 bytes
fuente
Pyke, 4 bytes
Pruébalo aquí!
fuente
Pyth, 5 bytes
Pruébalo aquí!
Suma la entrada con
sQ
, divide entre 4 con/4
y finalmente incrementah
.fuente
CJam, 7 bytes
Pruébalo aquí!
Define un bloque sin nombre que espera la entrada en la pila y deja el resultado allí.
:+
suma la lista,4/
divide el resultado entre 4 e)
incrementa eso.fuente
Retina ,
1817 bytesEl recuento de bytes asume la codificación ISO 8859-1.
La entrada está separada por salto de línea.
Pruébalo en línea!
fuente
R, 22 bytes
fuente
JavaScript, 29 bytes
fuente
SILOS
100 99103 caracteres + 22 para entrada de muestraCódigo con arnés de prueba.
ingrese como una serie de comandos establecidos para modificar los puntos del montón comenzando en el punto 512. ¡
Pruébelo en línea!
fuente
Python 2, 40 bytes
fuente
sum(s)
es un número entero y/
en Python 2 sería una división entera cuando ambos argumentos son enteros.[4]
.