Cuando redondea un número, si el siguiente dígito es >= 5
usted agrega 1. Por ejemplo:
3.1415926535 rounded to 1dp is 3.1
3.1415926535 rounded to 4dp is 3.1416 <-- Note the 5 changed to 6
3.1415926535 rounded to 5dp is 3.14159
3.1415926535 rounded to 9dp is 3.141592654 <-- Note the 3 changed to 4
Su desafío es recibir un número entero como entrada y salida el número de lugares decimales antes de los cuales tendría que redondear la raíz cuadrada del número, es decir, el número de lugares decimales antes de un dígito que se >= 5
produce.
El número entero estará entre 0 y 100,000 inclusive, por lo que para el caso límite de 59752 debe admitir 17 puntos decimales (para verificar el 17).
Si su lenguaje de programación no puede cambiar el número de puntos decimales, puede mostrar un "?" mensaje al usuario.
Ejemplo:
Input Root Output
5 -> 2.23 606797749979 -> 2
41 -> 6.40312423 743284 -> 8 (Largest gap under 100)
596 -> 24.4131112314 674 -> 10 (Largest gap under 1000)
59752 -> 244.44222221212112029 -> 16 (Largest gap under 100000)
Haz lo que quieras en cuadrados perfectos.
Este es el código de golf, por lo que gana el código más corto.
Para cualquier persona interesada, el número 310,617 es el más grande por debajo de 1,000,000 y tiene 18 antes de llegar a un dígito >= 5
.
Respuestas:
CJam, 17 bytes
Pruébalo en línea.
fuente
Pyth, 13 bytes
Banco de pruebas
Comience con
Q
igual a la entrada. En cada paso de tiempo, multipliqueQ
por 100, calculado comochr('d')
. Toma su raíz cuadrada. Tome este mod 10. Si el resultado es mayor que5
, finalice. Imprima el número de iteraciones que se necesitaron para terminar, indexado en 0.En detalle:
fuente
CJam,
292628 bytesPruébalo en línea.
Pone un "?" si no aparece el número que puede redondearse (cuadrado perfecto o demasiado largo).
fuente
Pyth, 22 bytes
Explicación
Estoy absolutamente seguro de que esto se puede jugar al golf. Si la entrada no tiene un dígito mayor que 4, imprimirá -1. Soporta 17dp.
fuente
Javascript, 59 bytes
Devuelve
?
59752 porque JavaScript solo usa doble precisión.fuente
Shell de Linux, 52 bytes
Intenté una
dc
solución pura , pero fallé. La precisión es ajustable (primer número).Como el OP especifica amablemente que "puedes hacer lo que quieras en cuadrados perfectos", en este caso, esta solución genera la precisión + 1, en este caso 35.
fuente
Mathematica 60 bytes
Ejemplo
fuente
Apply
.Rubí, 46 bytes
Esto puede no ser válido, ya que solo se ajusta a 16 dígitos.
fuente
nil
, ya que ningún dígito pasado 4 está en toda la cadena. Puede depender de la versión ruby.