Un nombre est entier s'il s'agit d'un entier non négatif sans partie décimale. Donc , 0
et 8
et 233494.0
sont tout, tout 1.1
et 0.001
et 233494.999
ne sont pas.
Contribution
Un nombre à virgule flottante dans la base / l'encodage par défaut de votre langue.
Par exemple, la représentation entière par défaut pour le calcul lambda binaire serait des chiffres d'église . Mais la représentation entière par défaut pour Python est la base 10 décimale , pas Unary .
Sortie
Une valeur vraie si l'entrée est entière, une valeur fausse si elle ne l'est pas.
Notez que si votre langue ne prend en charge que la précision décimale jusqu'à, disons, 8 positions, elle 1.000000002
peut être considérée comme entière.
L'entrée et la sortie peuvent être effectuées via n'importe quelle méthode d'E / S standard .
Cas de test
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
Notation
Comme pour le code-golf , la soumission la plus courte l'emporte. Bonne chance!
Réponses:
APL (Dyalog) , 3 octets
Essayez-le en ligne!
Notez que cela
f←
a été ajouté dans la liaison TIO en raison de limitations techniques, mais ce n'est normalement pas nécessaire.la source
floor(n) == abs(n)
.Haskell ,
2716 octetsCette fonction vérifie si elle
x
est contenue dans la liste des entiers non négatifs qui ne sont pas supérieurs àx
.Essayez-le en ligne!
la source
Wolfram Language (Mathematica) ,
171514 octets1 octet enregistré grâce à Pas un arbre!
Essayez-le en ligne!
Première réponse Mathematica \ o /
Mathematica, 15 octets
Enregistré 2 octets grâce à @ user202729!
la source
Pyth, 4 octets
Suite de tests
Le nombre est-il égal (
q
) au plancher (s
) de sa valeur absolue (.a
)?la source
Husk , 3 octets
Essayez-le en ligne! Le troisième cas de test arrive à expiration dans TIO, j'ai donc coupé quelques chiffres. J'ai essayé de l'exécuter localement, mais je l'ai tué après quelques minutes car il utilisait plus de 6 Go de mémoire et mon ordinateur a commencé à bégayer. Il devrait théoriquement se terminer à un moment donné ...
Explication
Cela correspond assez directement à la description du défi.
la source
λx → floor(x) == abs(x)
ressemblerait Husk?§=⌊a
donc un octet de plus.Python 2 , 18 octets
Essayez-le en ligne!
la source
/// , 94 octets, entrée codée en dur
Essayez-le en ligne!
Entrée entre les deux lignes verticales terminales (
||
)Supprime
-00...0
et.00...0
convertit tous les chiffres restants enx
s, puis teste si le nombre restant a toujoursx
s après.
ou-
non suivi de.
.Pourrait économiser jusqu'à 7 octets en fonction de ce qui est considéré comme véridique et falsey car cette langue n'a pas de valeurs natives vérité / falsey, est actuellement en cours de sortie
true
etfalse
peut changer, par exemple,T
etF
pour 87 octets si cela est autorisé.la source
Octave , 15 octets
Essayez-le en ligne!
Celui-ci est basé sur l'approche utilisée dans la réponse Haskell de @ flawr .
Bien qu'il porte le nombre d'octets jusqu'à 15, il est honteusement inefficace (pas d' infraction prévu), la création d' une liste de tout entier de
0
àx
et de voir six
est contenu.Octave , 18 octets
Essayez-le en ligne!
Prend l'entrée comme un nombre à double précision. Renvoie vrai s'il est entier.
Vérifie si l'entrée une fois arrondie est égale à la grandeur de l'entrée. Ce ne sera le cas que lorsque le nombre est positif et entier.
Octave , 18 octets
Essayez-le en ligne!
Une solution alternative pour 18 octets. Malheureusement, la
mod
fonction dans Octave ne convertira pas implicitement unbool
en undouble
, donc le+( )
est nécessaire autour de la comparaison supérieure à. Sinon, cette solution aurait été plus courte.Octave , 18 octets
Essayez-le en ligne!
Et un autre ...
Je n'arrive pas à obtenir moins de 18 octets. Tout cela parce que vous devez permettre à 0 d'être vrai avec le>=
au lieu de juste>
.la source
C ++ (gcc) , 33 octets
Essayez-le en ligne!
la source
Aceto , 6 octets
Essayez-le en ligne!
la source
Pyth , 6 octets
Essayez-le en ligne!
la source
QBIC , 17 octets
Explication
Si l'une des vérifications échoue, cela renvoie 0. Si les deux sont vraies, elle renvoie -1 x -1 = 1
la source
Python 2 et Python 3 ,
2118 octetsEssayez-le en ligne! (Py2)
Essayez-le en ligne! (Py3)
3 octets enregistrés grâce à M. XCoder.
la source
C (gcc),
27282725 octets-2 merci à PrincePolka
Essayez-le en ligne!
Définit une macro "fonction"
g
qui prend un paramètref
(de tout type). Vérifie ensuite si la conversionf mod 1
est nulle et si ellef
n'est pas négative.la source
include
directive dans votre nombre d'octets, car fmod est défini dansmath.h
: voir iciC #, Java: 43 octets
-1 octet grâce à Zacharý
-1 octet grâce à TheLetalCoder
C # a une optimisation spéciale de 33 octets que vous ne pouvez pas faire en java:
Pour tester
Code C #:
Code Java:
la source
return
et(
.bool
et il n'y a pas besoin de ternaire.bool
n'existe pas en Javareturn(int)n==n
? Ou cela serait-il jetén==n
dans un int plutôt que justen
?int w(float n){return(int)n!=n|n<0?0:1;}
( 40 octets ). En tant que lambda Java 8, il est encore plus court:n->(int)n==n&n>=0
( 17 octets ) , et la même chose s'applique à la réponse C # en tant que lambda:n=>(int)n==n&n>=0
(également 17 octets ) .Google Sheets, 10 octets
Fonction de feuille de calcul anonyme qui conte les entrées de la cellule
A1
et les sorties vers la cellule appelante.la source
Prolog (SWI) , 24 octets
Essayez-le en ligne!
la source
Ly ,
3547 octetsEssayez-le en ligne!
Ly prend en charge les flottants, mais la seule façon de créer un flottant est actuellement d'effectuer la division. Il n'y a aucun moyen de prendre un flottant en entrée, j'ai donc dû vérifier manuellement la chaîne à la place.
Perte de 13 octets ajoutant la prise en charge des nombres négatifs.
la source
JavaScript, 14
la source
n=>!(n-(n|0))
(n=>!(n-(n|0)))(-3)
renvoietrue
, mais devrait revenirfalse
. Voir le dernier cas de test.Perl 5, 11 +1 (-p) octets
Le
-l
commutateur n'est pas compté car pour les tests, l'affichageessayez-le en ligne
la source
Perl 6 ,
1513 octetsEssaye-le
Essaye-le
la source
Java (OpenJDK 8) , 14 octets
Essayez-le en ligne!
la source
C #,
403729 octets8 octets enregistrés grâce à @Dennis_E!
Ancienne réponse (37 octets)
Ancienne ancienne réponse (40 octets):
la source
bool z(float x)=>x%1==0&&x>=0;
et vous pouvez utiliser un seul&
pour 29 octetsx=>x%1==0&x>=0
est plus court et compile pourFunc<float, bool>
JavaScript,
1715 octetsMerci à edc65 d'avoir rattrapé mes erreurs.la source
Sinclair ZX81 non étendu, 20 octets
20 octets car BASIC est tokenisé.
Il affichera simplement 1 (vrai) si le nombre est positif et la valeur du nombre entré est égale à sa valeur entière. Les sorties 0 de ces conditions ne sont pas remplies.
la source
newline
(\r\n
équivalent en langage ZX81), les espaces blancs ne comptent pas comme des octets car ceux-ci sont déjà inclus dans les mots clés, généralement en raison du système d'entrée Sinclair `` une touche ''. En cours d'exécution, cela prendra plus d'octets car il mettra la valeur deA
survar stack
; Je pense que chaque valeur numérique est toujours 5 octets de mémoire.C, C ++:
3837 octets-1 octet grâce à Zacharý
-1 octet grâce au plafond
Pour tester
C: Essayez-le en ligne
Code C:
Code C ++:
la source
INT_MAX
. (Je m'en fous vraiment mais certaines personnes le font.)return(int)n==n...
fonctionner?>=0
test):return(unsigned)n==n;
Et en C, vous pouvez omettre le type de retour pour 4 autres octets.w(float n){n=n==(int)n&&n>=0;}
JavaScript (Node.js) , 11 octets
Essayez-le en ligne!
la source
J ,
74 octetsSuppression du chèque céleste inutile après la solution d'Erik The Outgolfer
Essayez-le en ligne!
la source
Lisp commun,
3632 octetsEssayez-le en ligne!
Transposition de la réponse de marmeladze .
la source
Python symbolique , 21 octets
Essayez-le en ligne!
Utilise une comparaison chaînée:
_%(_==_) == (_!=_)
vérifie sin%1 == 0
, seulement vrai sin
n'a pas de partie décimale.(_!=_) <= _
vérifie si0 <= n
, vrai uniquement si l'entier n'est pas négatif.la source