Un número es entero si es un entero no negativo sin parte decimal. So 0
y 8
y 233494.0
son completos, while 1.1
y 0.001
y 233494.999
no lo son.
Entrada
Un número de coma flotante en la base / codificación predeterminada de su idioma.
Por ejemplo, la representación entera predeterminada para el cálculo binario de Lambda serían los números de la Iglesia . Pero la representación entera predeterminada para Python es base 10 decimal , no unario .
Salida
Un valor verdadero si la entrada es completa, un valor falso si no lo es.
Tenga en cuenta que si su idioma solo admite precisión decimal, por ejemplo, 8 lugares, 1.000000002
puede considerarse completo.
La entrada y salida se pueden realizar a través de cualquier método de E / S estándar .
Casos de prueba
Input -> Output
332 -> true
33.2 -> false
128239847 -> true
0.128239847 -> false
0 -> true
0.000000000 -> true
1.111111111 -> false
-3.1415926 -> false
-3 -> false
Tanteo
Al igual que con code-golf , gana la presentación más corta. ¡Buena suerte!
Respuestas:
APL (Dyalog) , 3 bytes
Pruébalo en línea!
Tenga en cuenta que
f←
se ha incluido previamente en el enlace TIO debido a limitaciones técnicas, pero normalmente no es necesario.fuente
floor(n) == abs(n)
.Haskell ,
2716 bytesEsta función verifica si
x
está contenida en la lista de enteros no negativos que no son mayores quex
.Pruébalo en línea!
fuente
Wolfram Language (Mathematica) ,
171514 bytesGuardado 1 byte gracias a ¡No es un árbol!
Pruébalo en línea!
Primera respuesta de Mathematica \ o /
Mathematica, 15 bytes
¡Ahorré 2 bytes gracias a @ user202729!
fuente
Pyth, 4 bytes
Banco de pruebas
¿Es el número igual (
q
) al piso (s
) de su valor absoluto (.a
)?fuente
Casco , 3 bytes
Pruébalo en línea! El tercer caso de prueba agotó el tiempo en TIO, por lo que corté un par de dígitos. Traté de ejecutarlo localmente, pero lo maté después de un par de minutos, ya que estaba usando más de 6 GB de memoria y mi computadora comenzó a tartamudear. Teóricamente debería terminar en algún momento ...
Explicación
Esto corresponde a la descripción del desafío de forma bastante directa.
fuente
λx → floor(x) == abs(x)
vería en Husk?§=⌊a
, así que un byte más.Python 2 , 18 bytes
Pruébalo en línea!
fuente
/// , 94 bytes, entrada codificada
Pruébalo en línea!
Entrada entre las dos líneas verticales de terminación (
||
)Tiras
-00...0
y.00...0
, convierte todos los dígitos restantes ax
s, luego prueba si el número restante todavía tienex
s después.
o-
no seguido de.
.Podría ahorrar hasta 7 bytes dependiendo de lo que se cuenta como verdadero y falso, ya que este lenguaje no tiene valores de verdadero / verdadero, actualmente se emite
true
yfalse
podría cambiar, por ejemplo,T
yF
por 87 bytes si está permitido.fuente
Octava , 15 bytes
Pruébalo en línea!
Este se basa en el enfoque utilizado en la respuesta de Haskell de @ flawr .
Si bien reduce el recuento de bytes a 15, es vergonzosamente ineficiente (sin intención de ofender), creando una lista de cada número entero desde y
0
hastax
six
está contenido dentro.Octava , 18 bytes
Pruébalo en línea!
Toma la entrada como un número de doble precisión. Devuelve verdadero si está entero.
Comprueba si la entrada cuando se redondea es igual a la magnitud de la entrada. Este solo será el caso cuando el número sea positivo y completo.
Octava , 18 bytes
Pruébalo en línea!
Una solución alternativa para 18 bytes. Lamentablemente, la
mod
función en Octave no convertirá implícitamentebool
a adouble
, por lo que+( )
se necesita alrededor de la comparación. De lo contrario, esta solución habría sido más corta.Octava , 18 bytes
Pruébalo en línea!
Y otro ...
Parece que no puedo bajar de 18 bytes. Todo por tener que permitir que 0 sea verdadero con el en>=
lugar de solo>
.fuente
C ++ (gcc) , 33 bytes
Pruébalo en línea!
fuente
Aceto , 6 bytes
Pruébalo en línea!
fuente
Pyth , 6 bytes
Pruébalo en línea!
fuente
QBIC , 17 bytes
Explicación
Si cualquiera de las comprobaciones falla, esto devuelve 0. Si ambas son verdaderas, devuelve -1 x -1 = 1
fuente
Python 2 y Python 3 ,
2118 bytesPruébalo en línea! (Py2) ¡
Pruébalo en línea! (Py3)
3 bytes guardados gracias al Sr. XCoder.
fuente
C (gcc),
27282725 bytes-2 gracias a PrincePolka
Pruébalo en línea!
Define una macro "función"
g
que toma un parámetrof
(de cualquier tipo). Luego comprueba si el lanzamientof mod 1
es cero y sif
no es negativo.fuente
include
directiva en el recuento de bytes, ya que fmod se define enmath.h
: ver allíC #, Java: 43 bytes
-1 byte gracias a Zacharý
-1 byte gracias a TheLetalCoder
C # tiene una optimización especial de 33 bytes que no puede hacer en Java:
Para las pruebas
Código C #:
Código Java:
fuente
return
y(
.bool
no hay necesidad del ternario.bool
no existe en Javareturn(int)n==n
? ¿O eso se lanzarían==n
a un int en lugar de solon
?int w(float n){return(int)n!=n|n<0?0:1;}
( 40 bytes ). Como Java 8 lambda es aún más corto:n->(int)n==n&n>=0
( 17 bytes ) , y lo mismo se aplica a la respuesta de C # como lambda:n=>(int)n==n&n>=0
(también 17 bytes ) .Hojas de cálculo de Google, 10 bytes
Función de hoja de trabajo anónima que cuenta la entrada de la celda
A1
y las salidas a la celda que llamafuente
Prólogo (SWI) , 24 bytes
Pruébalo en línea!
fuente
Ly ,
3547 bytesPruébalo en línea!
Ly tiene soporte flotante, pero la única forma de crear un flotante actualmente es realizando una división. No hay forma de tomar un flotador como entrada, por lo que tuve que verificar manualmente la cadena.
Perdió 13 bytes agregando soporte para números negativos.
fuente
JavaScript, 14
fuente
n=>!(n-(n|0))
(n=>!(n-(n|0)))(-3)
vuelvetrue
, pero debería volverfalse
. Ver el último caso de prueba.Perl 5, 11 +1 (-p) bytes
El
-l
interruptor no cuenta porque para la pantalla de pruebaspruébalo en línea
fuente
Perl 6 ,
1513 bytesPruébalo
Pruébalo
fuente
Java (OpenJDK 8) , 14 bytes
Pruébalo en línea!
fuente
C #,
403729 bytes¡Guardado 8 bytes gracias a @Dennis_E!
Respuesta anterior (37 bytes)
Antigua respuesta anterior (40 bytes):
fuente
bool z(float x)=>x%1==0&&x>=0;
y puede usar un solo&
para 29 bytesx=>x%1==0&x>=0
es más corto y compilado aFunc<float, bool>
JavaScript,
1715 bytesGracias a edc65 por atrapar mis errores.fuente
Sinclair ZX81 sin expandir, 20 bytes
20 bytes porque BASIC está tokenizado.
Simplemente generará 1 (verdadero) si el número es positivo y el valor del número ingresado es igual a su valor entero. Las salidas 0 de cualquiera de esas condiciones no se cumplen.
fuente
newline
(\r\n
equivalente en el lenguaje ZX81), los espacios en blanco no cuentan como bytes, ya que esos ya están incluidos en las palabras clave, generalmente debido al sistema de entrada Sinclair 'presionar una tecla'. Al ejecutarse, tomará más bytes ya que pondrá el valor deA
envar stack
; Creo que cada valor numérico siempre tiene 5 bytes de memoria.C, C ++:
3837 bytes-1 byte gracias a Zacharý
-1 byte gracias a ceilingcat
Para las pruebas
C: Pruébelo en línea
Código C:
Código C ++:
fuente
INT_MAX
. (Realmente no me importa, pero algunas personas sí.)return(int)n==n...
trabajar?>=0
prueba):return(unsigned)n==n;
y en C, puede omitir el tipo de retorno para otros 4 bytes.w(float n){n=n==(int)n&&n>=0;}
JavaScript (Node.js) , 11 bytes
Pruébalo en línea!
fuente
J ,
74 bytesSe eliminó el chequeo de celing innecesario después de la solución de Erik The Outgolfer
Pruébalo en línea!
fuente
Lisp común,
3632 bytesPruébalo en línea!
Transposición de la respuesta de marmeladze .
fuente
Python simbólico , 21 bytes
Pruébalo en línea!
Utiliza una comparación encadenada:
_%(_==_) == (_!=_)
comprueba sin%1 == 0
, solo verdadero sin
no tiene parte decimal.(_!=_) <= _
comprueba si0 <= n
, solo es verdadero si el entero no es negativo.fuente