Una persona tiene que completar Nunidades de trabajo; La naturaleza del trabajo es la misma.
Para acostumbrarse al trabajo, completa solo una unidad de trabajo en el primer día .
Él desea celebrar la finalización del trabajo, por lo que decide completar una unidad de trabajo en el último día .
Solo se le permite completar x, x+1o x-1unidades de trabajo en un día , donde xestán las unidades de trabajo completadas el día anterior.
Su tarea es crear un programa o función que calcule la cantidad mínima de días que tardará en completar las Nunidades de trabajo.
Entrada de muestra y salida:
input -> output (corresponding work_per_day table)
-1 -> 0 []
0 -> 0 []
2 -> 2 [1,1]
3 -> 3 [1,1,1]
5 -> 4 [1,1,2,1] or [1,2,1,1]
9 -> 5 [1,2,3,2,1]
13 -> 7 [1,2,2,2,3,2,1]
La entrada puede tomarse a través STDINo como argumento de función, o de cualquier manera apropiada.
La salida puede imprimirse o como resultado de una función, o de cualquier manera apropiada.
Este es el código de golf . La solución más corta gana.
fuente

Respuestas:
Jalea , 5 bytes
Esto utiliza una forma cerrada del enfoque de @ LeakyNun .
Pruébalo en línea!
Debido a una coincidencia afortunada,
Ḟse sobrecarga comofloor/realpara números reales / complejos. Este es uno de los únicos tres átomos sobrecargados en Jelly.Cómo funciona
fuente
Pyth , 8 bytes
Cómo funciona:
Pruébalo en línea!
En pseudocódigo:
bonificación, 22 bytes
"debería devolver 7 por -1"
Pruébalo en línea!
fuente
JavaScript (ES2016), 24 bytes
Versión acortada de la variante ES6 a continuación gracias a @Florent y al Operador de exponenciación (actualmente solo en las compilaciones o transpiladores nocturnos de Firefox).
JavaScript (ES6), 30 bytes
Basado en esta secuencia .
fuente
f=n=>(n-1)**.5+(n+1)**.5|0JavaScript
3231 bytesCódigo sin golf:
Utiliza el mismo algoritmo que la respuesta de Kenny Lau, pero se implementa como cierre recursivo para guardar algunos bytes.
Uso:
Solución REPL, 23 bytes
Prependa
q=a ejecutar el fragmento:fuente
>=al<: Dfor(t=1;;)if(t*t++/4>=q)return t-1;es solo 36 bytes :)Python, 28 bytes
Emite un flotador. El
maxestá ahí para dar0an<=0evitando al mismo tiempo un error de raíz cuadrada de negativo.fuente
UGL ,
3025 bytesPruébalo en línea!
No funciona para entradas negativas.
Cómo funciona:
Solución anterior de 30 bytes:
Intérprete en línea aquí .
No funciona para entradas negativas.
Cómo funciona:
fuente
MATL, 11 bytes
Algoritmo similar a @KennyLau, excepto que en lugar de hacer un bucle indefinido, hago un bucle de 1 ... 2n para guardar algunos bytes.
Pruébalo en línea!
Explicación
fuente
Pyke, 8 bytes
Pruébalo aquí!
Utiliza el mismo algoritmo que @KennyLau
fuente
Python, 43 bytes
fuente
Java 8,
3024 bytesPruébalo en línea.
No es necesario verificar si
nes mayor que 0, ya que JavaMath.sqrtdevuelveNaNlas entradas negativas, lo que se convierte0en la conversiónintque ya usamos para las entradas positivas.fuente
Rubí , 30 bytes.
Pruébalo en línea!
Guardar un byte aquí con en
.to_ilugar de.floor.El soporte para cantidades de trabajo no positivas tiene un costo de 6 bytes (
n<1?0:).fuente