Esta es una tarea simple. Dado un número real positivo o negativo, redondea al siguiente entero entero más cercano a cero.
El reto
Tome información a través de cualquier forma razonable (stdin, función, etc.) de un número real positivo o negativo.
Redondee este número "hacia cero"; esto significa que si es positivo, redondeará hacia abajo y, si es negativo, redondeará hacia arriba.
Devuelva el número o envíelo a la consola.
Casos de prueba
1.1 => 1
-1.1 => -1
500.4 => 500
-283.5 => -283
50 => 50
-50 => -50
Reglas
Este es el código de golf , por lo que gana la menor puntuación en bytes.
Tenga en cuenta las lagunas estándar .
¡Que te diviertas! más desafíos de Jimmy próximamente
code-golf
number
rational-numbers
conecta tu cargador
fuente
fuente
3.00
para3.14
?0.01
y-0.01
debería ceder0
...Respuestas:
Jalea , 1 byte
Un programa completo (como un enlace monádico devuelve una lista de longitud uno).
Pruébalo en línea!
¿Cómo?
fuente
Python 3 , 3 bytes
Pruébalo en línea!
Trunca los dígitos después del punto decimal.
NOTA: Esta es una respuesta trivial. Por favor, eche un vistazo a las otras respuestas antes de votar
fuente
Python 2 , 3 bytes
Pruébalo en línea!
fuente
Perl 5
-p056l15
, 2 bytesPruébalo en línea!
¿Cómo funciona?
O si prefiere una respuesta más tradicional:
Perl 5 , 6 bytes
Pruébalo en línea!
fuente
\n
, es\r
.\n
sería l12. Sin embargo, se ve igual en TIO.-Minteger
-p
$_/=1
Laberinto y Hexagonía , 3 bytes
¡Gracias a FryAmTheEggman por señalar que había escrito algo de Hexagony!
Pruébalo en línea! ¡Y pruébalo en línea!
¿Cómo?
¡Labyrinth y Hexagony te contarán lo antes posible! ...
fuente
IO@
en Backhand funciona de la misma manera, y&.@
en Befunge. Probablemente muchos idiomas con entrada de enteros, y solo el manejo de enteros será el mismobrainfuck , 26 bytes
Pruébalo en línea!
Salidas con un final
.
si el número era decimalNo hay mucho golf en cuanto a golf, excepto que en lugar de restar 46 para verificar si un personaje es un
.
, agrego 5 y multiplico por 5 para obtener 255, luego agrego uno más para rodar a cero. Restar 3, multiplicar por 6 y restar 2 es el mismo bytecountfuente
C (tcc)
392110 bytesDe hecho, me sorprendió que nadie pensara en usar C.
Esta no es una función de identidad como parece ser. El tipo int implícito de la función f trunca el punto flotante.
TIO
Es menos probable que engañe a las personas pero tiene una longitud de byte más corta:
TIO
fuente
float
ya que esto usa un registro diferente para la entrada de valores de coma flotante.J , 6 bytes
Pruébalo en línea!
Signo
*
multiplicado por*
el redondeo hacia abajo<.
del valor absoluto@|
fuente
Perl 6 , 4 bytes
Función anónima.
Pruébalo en línea!
fuente
Java (OpenJDK 8) ,
15 bytes9 bytesPruébalo en línea!
gracias a @ kevin-cruijssen
fuente
(int)
. Y aquí una alternativa divertida de 15 bytes usando una referencia de método. :)Excel, 10 bytes
TRUNC
trunca un número a un entero eliminando la parte fraccionaria del número.fuente
R ,
135 bytesGracias Robin Ryder
Pruébalo en línea!
fuente
Retina 0.8.2 , 5 bytes
Pruébalo en línea! El enlace incluye casos de prueba.
fuente
Ruby , 11 bytes
Elegí este porque se distingue de las lambdas que usualmente utilizamos los golfistas de Ruby (afortunadamente, tenía el mismo bytecount que la solución "tradicional"):
Pruébalo en línea!
fuente
ReRegex , 12 bytes
Pruébalo en línea!
ReRegex es un lenguaje de programación que coincide y reemplaza una y otra vez hasta que no haya coincidencias.
fuente
JavaScript, 6 bytes
Pruébalo en línea!
JavaScript, 8 bytes
El uso integrado es 2 bytes más largo ...
Pruébalo en línea!
fuente
x=>~~x
? Todavía 6 bytes sin embargo.K (oK) , 3 bytes
Pruébalo en línea!
fuente
Código de máquina Intel 8087 FPU, 14 bytes
La entrada es un valor de precisión único en una ubicación de memoria
A
(aDD
), la salida es un valor entero en la ubicación de memoriaB
(aDW
).El 8087 primero debe ponerse en modo redondo hacia cero configurando la palabra de control (
0F7FH
). Luego cargue el valor de coma flotante y almacénelo de nuevo a un entero.fuente
Rojo , 4 bytes
Pruébalo en línea!
Simplemente convierte el flotante en un entero (conversión por prototipo)
fuente
Zsh , 10 bytes
xor
con 0. Me encontré con esto durante otro desafío recientemente . Pruébalo en línea!No funciona en Bash o POSIX sh (guión).
fuente
V (vim) , 4 bytes
Pruébalo en línea!
Gracias @DJMcMayhem , 1 byte guardado.
fuente
Barrilete ,
191713 bytesEsto genera algunos caracteres no imprimibles finales. Además, esto sale con un error. (¡Ahora necesitamos una entrada invertida!)
fuente
Los espacios en blanco (con compilador vii5ard ),
1817 bytesSe agregaron letras
S
(espacio),T
(tabulación) yN
(nueva línea) solo como resaltado.[..._some_action]
agregado solo como explicación.Pruébalo en línea. Tendrá que copiar y pegar el código usted mismo (¡tenga en cuenta que SE convierte las pestañas en un montón de espacios!) Para ejecutar el código en el compilador de espacios en línea vii5ard. Al hacer clic en Ejecutar, solicitará una entrada (es decir
-285.5
), y después de hacer clic en Intro continuará y saldrá-283
.Explicación en pseudocódigo:
Los espacios en blanco solo pueden usar E / S como números enteros o caracteres individuales, por lo que en este caso leería la entrada como número entero e ignoraría cualquier otro carácter final. Es decir,
-283.5
o-283abc5
ambos serían de entrada (y, por tanto, de salida) como-283
.Desafortunadamente, lo anterior no funciona en TIO por dos razones (todos los compiladores de Whitespace son ligeramente diferentes ...):
no parse
error cuando intentemos leer una entrada como un entero, que no es un entero válido. Entonces, en su lugar, leeremos un carácter a la vez y nos detendremos (con un error) tan pronto como nos encontremos con el.
o no haya más entradas (es decir,50
/-50
).SSN
, mientras que en TIO requiere un adicionalS
oT
:SSSN
/SSTN
. El primeroS
es Habilitar manipulación de pila ; el segundoS
es Empujar lo que sigue como entero ; el terceroS
/T
es positivo / negativo respectivamente; y anyS
/T
after that (seguido de anN
) es el número que queremos ingresar en binario, dondeS=0
yT=1
. Para el entero 0, esta parte binaria no importa, ya que es 0 por defecto. Pero en TIO todavía tendríamos que especificar lo positivo / negativo, y con la mayoría de los otros compiladores de espacios en blanco como vii5ard no.Espacio en blanco (con compilador TIO ), 48 bytes
Se agregaron letras
S
(espacio),T
(tabulación) yN
(nueva línea) solo como resaltado.[..._some_action]
agregado solo como explicación.Pruébelo en línea (solo con espacios en bruto, pestañas y nuevas líneas).
Explicación en pseudocódigo:
fuente
Pip , 5 bytes
Pruébalo en línea!
fuente
C # (compilador interactivo de Visual C #) , 9 bytes
Pruébalo en línea!
fuente
Scala , 7 bytes
Pruébalo en línea!
fuente
x=>x-x%1
.Double=>Double
en este caso.05AB1E , 1 byte
En la versión heredada (que está escrita en Python), la conversión integrada al entero funciona como se espera para truncar los valores decimales.
Pruébalo en línea.
En la nueva versión de 05AB1E (escrita en Elixir) solo funciona en cadenas (a pesar de que los enteros / decimales / cadenas deben ser intercambiables, a menos que se ordene lexicográficos versus numéricos, por ejemplo). Supongo que puedo informar un error a @Adnan ..
Pruébelo en línea para comparar entradas enteras / decimales (que dan un resultado incorrecto) frente a entradas de cadena (que dan resultados correctos).
fuente
ï
funciona bien en 05AB1E no heredado . Es una entrada de matriz que funciona de una manera extraña.Aheui (esótopo) , 9 bytes
Pruébalo en línea!
La idea básica de la respuesta triangular (o cualquier otro idioma toma la entrada numérica como un entero).
Hecho de la diversión.
방망희
(pronunciadobang-mang-heui
(a
deark
)) suena casi igual que방망이
(pronunciadobang-mang-i
(a
deark
,i
suena comoE
), lo que significa murciélago.¿Cómo funciona?
방
toma el número como entero.망
imprime el valor como número.희
termina el programafuente
PowerShell , 19 bytes
Pruébalo en línea!
PowerShell por defecto realiza el redondeo de los banqueros , que es más o menos lo contrario de cuántos otros idiomas hacen el redondeo. Entonces, tradicionalmente usamos
[Math]::Truncate()
para quitar el punto decimal y cualquier parte decimal y lograr el redondeo "a cero" que nos interesa aquí. Sin embargo, eso es un poco largo, por lo que con este consejo , podemos redondear hacia cero lanzando implícitamente la entrada a una cadena, realizando una expresión regular-replace
para eliminar el período y cualquier cosa posterior, y dejando la salida en la tubería para impresión implícitafuente
Triangular , 3 bytes.
Pruébalo en línea!
Triangular toma la entrada numérica como un entero; cualquier valor decimal se trunca. Si es aceptable dejar la entrada en la pila sin imprimirla, entonces esta solución puede ser:
Triangular , 1 byte
Pruébalo en línea!
fuente