Eine Zahl ist ganz, wenn es sich um eine nicht negative Ganzzahl ohne Dezimalstelle handelt. So 0
und 8
und 233494.0
sind ganz, während 1.1
und 0.001
und 233494.999
nicht.
Eingang
Eine Gleitkommazahl in der Standardbasis / -codierung Ihrer Sprache.
Die standardmäßige Ganzzahldarstellung für die binäre Lambda-Rechnung wäre beispielsweise Church-Ziffern . Die standardmäßige Ganzzahldarstellung für Python ist jedoch eine Dezimalzahl zur Basis 10 , nicht Unary .
Ausgabe
Ein wahrer Wert, wenn die Eingabe vollständig ist, ein falscher Wert, wenn dies nicht der Fall ist.
Beachten Sie, dass eine Sprache, die nur eine Dezimalgenauigkeit von beispielsweise 8 Stellen unterstützt, 1.000000002
als Ganzes betrachtet werden kann.
Die Ein- und Ausgabe kann über beliebige Standard-E / A-Methoden erfolgen .
Testfälle
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
Wertung
Wie beim Code-Golf gewinnt die kürzeste Einreichung. Viel Glück!
Antworten:
APL (Dyalog) , 3 Bytes
Probieren Sie es online!
Beachten Sie, dass
f←
der TIO-Link aus technischen Gründen vorangestellt wurde, aber normalerweise nicht benötigt wird.quelle
floor(n) == abs(n)
.Haskell ,
2716 BytesDiese Funktion prüft, ob
x
in der Liste der nichtnegativen ganzen Zahlen enthalten ist, die nicht größer als sindx
.Probieren Sie es online!
quelle
Wolfram Language (Mathematica) ,
171514 Bytes1 Byte gespart dank Not a tree!
Probieren Sie es online!
Erste Mathematica-Antwort \ o /
Mathematica, 15 Bytes
2 Bytes gespart dank @ user202729!
quelle
Pyth, 4 Bytes
Testsuite
Ist die Zahl gleich (
q
) dem Floor (s
) seines absoluten Wertes (.a
)?quelle
Schale , 3 Bytes
Probieren Sie es online! Der dritte Testfall läuft in TIO ab, daher habe ich ein paar Ziffern abgeschnitten. Ich habe versucht, es lokal auszuführen, habe es aber nach ein paar Minuten beendet, da es mehr als 6 GB Speicher beanspruchte und mein Computer anfing zu ruckeln. Es sollte theoretisch irgendwann zu Ende sein ...
Erläuterung
Dies entspricht ziemlich direkt der Herausforderungsbeschreibung.
quelle
λx → floor(x) == abs(x)
in Husk aussehen?§=⌊a
also ein Byte länger.Python 2 , 18 Bytes
Probieren Sie es online!
quelle
/// , 94 Bytes, Eingabe fest codiert
Probieren Sie es online!
Eingabe zwischen den beiden vertikalen Abschlusslinien (
||
)Entfernt
-00...0
und.00...0
, konvertiert alle verbleibenden Ziffern inx
s und prüft dann, ob die verbleibende Zahl nochx
s nach.
oder ein-
nicht gefolgt von hat.
.Kann bis zu 7 Bytes speichern , je nachdem , was als truthy und Falsey gezählt, seit dieser Sprache nicht heimisch truthy / Falsey Werte hat, gerade ausgibt
true
undfalse
aber zu, zum Beispiel ändern könnte,T
undF
für 87 Bytes , wenn das ist erlaubt.quelle
Oktave , 15 Bytes
Probieren Sie es online!
Dieser basiert auf dem Ansatz, der in der Haskell-Antwort von @ flawr verwendet wurde .
Während es die Byteanzahl auf 15 senkt, ist es schändlich ineffizient (keine Straftat beabsichtigt), indem es eine Liste aller Ganzzahlen von
0
bis erstelltx
und prüft, ob siex
enthalten sind.Oktave , 18 Bytes
Probieren Sie es online!
Nimmt die Eingabe als Zahl mit doppelter Genauigkeit. Gibt true zurück, wenn ganz.
Überprüft, ob die Eingabe beim Runden der Größe der Eingabe entspricht. Dies ist nur der Fall, wenn die Zahl positiv und ganz ist.
Oktave , 18 Bytes
Probieren Sie es online!
Eine alternative Lösung für 18 Bytes. Leider
mod
konvertiert die Funktion in Octave a nicht implizitbool
in adouble
, daher+( )
wird die Funktion um das Größere als den Vergleich benötigt. Andernfalls wäre diese Lösung kürzer gewesen.Oktave , 18 Bytes
Probieren Sie es online!
Und noch eine ...
Ich kann nicht unter 18 Bytes kommen. Alles nur, weil man zulassen muss, dass 0 wahr ist,>=
anstatt nur>
.quelle
C ++ (gcc) , 33 Bytes
Probieren Sie es online!
quelle
Aceto , 6 Bytes
Probieren Sie es online!
quelle
Pyth , 6 Bytes
Probieren Sie es online!
quelle
QBIC , 17 Bytes
Erläuterung
Wenn eine der beiden Prüfungen fehlschlägt, wird 0 zurückgegeben. Wenn beide erfüllt sind, wird -1 x -1 = 1 zurückgegeben
quelle
Python 2 und Python 3 ,
2118 BytesProbieren Sie es online! (Py2)
Probieren Sie es online! (Py3)
3 Bytes gespart dank Mr. XCoder.
quelle
C (gcc),
27282725 Bytes-2 Dank an PrincePolka
Probieren Sie es online!
Definiert eine Makro- "Funktion"
g
, die einen Parameterf
(eines beliebigen Typs) akzeptiert. Überprüft dann, ob das Castingf mod 1
Null ist und obf
es nicht negativ ist.quelle
include
Direktive in Ihremath.h
C #, Java: 43 Bytes
-1 Byte dank Zacharý
-1 Byte dank TheLetalCoder
C # hat eine spezielle 33-Byte-Optimierung, die Sie in Java nicht durchführen können:
Zum Prüfen
C # -Code:
Java Code:
quelle
return
und entfernen(
.bool
und es besteht keine Notwendigkeit für den Dreistoff.bool
existiert nicht in Javareturn(int)n==n
? Oder würde dasn==n
eher zu einem int als nur umgewandelt werdenn
?int w(float n){return(int)n!=n|n<0?0:1;}
( 40 Byte ). Als Java 8 Lambda ist es sogar noch kürzer:n->(int)n==n&n>=0
( 17 Bytes ) , und dasselbe gilt für die C # -Antwort als Lambda:n=>(int)n==n&n>=0
(ebenfalls 17 Bytes ) .Google Sheets, 10 Bytes
Anonyme Arbeitsblattfunktion, die Eingaben aus der Zelle
A1
und Ausgaben in die aufrufende Zelle protokolliert.quelle
Prolog (SWI) , 24 Bytes
Probieren Sie es online!
quelle
Ly ,
3547 BytesProbieren Sie es online!
Ly hat Float-Unterstützung, aber die einzige Möglichkeit, einen Float zu erstellen, besteht derzeit darin, eine Division durchzuführen. Es gibt keine Möglichkeit, ein Float als Eingabe zu verwenden, daher musste ich stattdessen die Zeichenfolge manuell überprüfen.
13 Bytes verloren, die Unterstützung für negative Zahlen hinzufügen.
quelle
JavaScript, 14
quelle
n=>!(n-(n|0))
(n=>!(n-(n|0)))(-3)
kehrt zurücktrue
, sollte aber zurückkehrenfalse
. Siehe den letzten Testfall.Perl 5, 11 + 1 (-p) Bytes
Der
-l
Schalter wird nicht mitgezählt, da für Tests angezeigtversuche es online
quelle
Perl 6 ,
1513 BytesProbier es aus
Probier es aus
quelle
Java (OpenJDK 8) , 14 Byte
Probieren Sie es online!
quelle
C #,
403729 Bytes8 Bytes gespart dank @Dennis_E!
Alte Antwort (37 Bytes)
Alte alte Antwort (40 Bytes):
quelle
bool z(float x)=>x%1==0&&x>=0;
und Sie können eine Single&
für 29 Bytes verwendenx=>x%1==0&x>=0
ist kürzer und kompilierenFunc<float, bool>
JavaScript,
17-15BytesVielen Dank an edc65, dass du meine Fehler abgefangen hast.quelle
Nicht erweiterter Sinclair ZX81, 20 Byte
20 Bytes, da BASIC tokenisiert ist.
Wird einfach 1 (wahr) ausgeben, wenn die Zahl positiv ist und der Wert der eingegebenen Zahl dem ganzzahligen Wert entspricht. Ausgang 0 eine dieser Bedingungen ist nicht erfüllt.
quelle
newline
(\r\n
entspricht ZX81). Leerzeichen zählen nicht als Byte, da diese bereits in den Schlüsselwörtern enthalten sind, die normalerweise aufgrund des Sinclair-Eintasten-Eingabesystems verwendet werden. Während der Ausführung werden mehr Bytes benötigt, da der Wert vonA
aufvar stack
; gesetzt wird. Ich denke, jeder numerische Wert ist immer 5 Bytes Speicher.C, C ++:
3837 Bytes-1 Byte dank Zacharý
-1 byte dank ceilingcat
Zum Prüfen
C: Probieren Sie es online
C-Code:
C ++ Code:
quelle
INT_MAX
. (Es interessiert mich nicht wirklich, aber einige Leute tun es.)return(int)n==n...
funktionieren?>=0
Test ):return(unsigned)n==n;
In C können Sie den Rückgabetyp für weitere 4 Byte weglassen.w(float n){n=n==(int)n&&n>=0;}
JavaScript (Node.js) , 11 Byte
Probieren Sie es online!
quelle
J ,
74 BytesDer unnötige Celing Check nach der Lösung von Erik The Outgolfer wurde entfernt
Probieren Sie es online!
quelle
Gemeiner Lisp,
3632 BytesProbieren Sie es online!
Umsetzung von Marmeladzes Antwort .
quelle
Symbolisches Python , 21 Bytes
Probieren Sie es online!
Verwendet einen verketteten Vergleich:
_%(_==_) == (_!=_)
prüft obn%1 == 0
, nur wahr wennn
kein Dezimalteil vorhanden ist.(_!=_) <= _
prüft ob0 <= n
, nur wahr wenn die ganze Zahl nicht negativ ist.quelle