Dies ist eine einfache Aufgabe. Runden Sie eine positive oder negative reelle Zahl auf die nächste ganze Zahl, die näher bei Null liegt.
Die Herausforderung
Geben Sie eine positive oder negative reelle Zahl in einer angemessenen Form (stdin, function usw.) ein.
Runden Sie diese Zahl auf "gegen Null" - das heißt, wenn es positiv ist, werden Sie abrunden, und wenn es negativ ist, werden Sie aufrunden.
Geben Sie die Nummer zurück oder geben Sie sie an die Konsole aus.
Testfälle
1.1 => 1
-1.1 => -1
500.4 => 500
-283.5 => -283
50 => 50
-50 => -50
Regeln
Dies ist Code-Golf , also gewinnt die geringste Punktzahl in Bytes.
Beachten Sie die Standardlücken .
Habe Spaß! Weitere Jimmy-Herausforderungen folgen in Kürze
code-golf
number
rational-numbers
schließen Sie ihr Ladegerät an
quelle
quelle
3.00
für3.14
?0.01
und-0.01
sollte ergeben0
...Antworten:
Gelee , 1 Byte
Ein vollständiges Programm (als monadischer Link gibt es eine Liste mit der Länge eins zurück).
Probieren Sie es online!
Wie?
quelle
Python 3 , 3 Bytes
Probieren Sie es online!
Kürzt die Nachkommastellen.
HINWEIS: Dies ist eine triviale Antwort. Bitte schau dir die anderen Antworten an, bevor du abstimmst
quelle
Python 2 , 3 Bytes
Probieren Sie es online!
quelle
Perl 5
-p056l15
, 2 BytesProbieren Sie es online!
Wie funktioniert das?
Oder wenn Sie eine traditionellere Antwort bevorzugen:
Perl 5 , 6 Bytes
Probieren Sie es online!
quelle
\n
, es ist\r
.\n
wäre l12. In TIO sieht es jedoch genauso aus.-Minteger
-p
$_/=1
Labyrinth und Hexagonie , 3 Bytes
Vielen Dank an FryAmTheEggman für den Hinweis, dass ich Hexagony geschrieben habe!
Probieren Sie es online! & Online ausprobieren!
Wie?
Labyrinth und Hexagony werden es dir so früh wie möglich sagen! ...
quelle
IO@
In der Rückhand funktioniert das genauso und&.@
in der Befunge. Wahrscheinlich viele Sprachen mit Integer-Eingabe, und nur Integer-Behandlung wird gleich seinBrainfuck , 26 Bytes
Probieren Sie es online!
Wird mit einem nachgestellten Wert ausgegeben,
.
wenn die Zahl eine Dezimalzahl warEs gibt nicht viel spezielles Golfen, außer dass
.
ich , anstatt 46 zu subtrahieren, um zu prüfen, ob ein Charakter a ist , 5 addiere und mit 5 multipliziere, um 255 zu erhalten, und dann eine weitere hinzufüge, um auf Null zu rollen. Das Subtrahieren von 3, das Multiplizieren mit 6 und das Subtrahieren von 2 entspricht der Anzahlquelle
C (tcc),
392110 BytesIch war eigentlich ziemlich überrascht, dass niemand daran gedacht hat, C zu verwenden.
Dies ist keine Identitätsfunktion, wie es scheint. Der implizite int-Typ der f-Funktion trunctuated den Gleitkommawert.
TIO
Es ist weniger wahrscheinlich, dass Leute betrogen werden, hat aber eine kürzere Bytelänge:
TIO
quelle
float
da dies ein anderes Register für die Eingabe von Gleitkommawerten verwendet.J , 6 Bytes
Probieren Sie es online!
Unterschreibe
*
mal*
die Abrundung<.
des absoluten Wertes@|
quelle
Perl 6 , 4 Bytes
Anonyme Funktion.
Probieren Sie es online!
quelle
Java (OpenJDK 8) ,
15 Bytes9 BytesProbieren Sie es online!
danke an @ kevin-cruijssen
quelle
(int)
. Und hier eine spaßige 15-Byte- Alternative mit einer Methodenreferenz. :)Excel, 10 Bytes
TRUNC
Kürzt eine Zahl in eine Ganzzahl, indem der Bruchteil der Zahl entfernt wird.quelle
R ,
135 BytesVielen Dank, Robin Ryder
Probieren Sie es online!
quelle
Retina 0.8.2 , 5 Bytes
Probieren Sie es online! Link enthält Testfälle.
quelle
Ruby , 11 Bytes
Ich habe mich für dieses entschieden, weil es sich von den Lambdas unterscheidet, die wir Ruby-Golfer normalerweise verwenden (zum Glück hatte es denselben Bytecount wie die "traditionelle" Lösung):
Probieren Sie es online!
quelle
ReRegex , 12 Bytes
Probieren Sie es online!
ReRegex ist eine Programmiersprache, die immer wieder übereinstimmt und ersetzt, bis es keine Übereinstimmungen mehr gibt.
quelle
JavaScript, 6 Bytes
Probieren Sie es online!
JavaScript, 8 Bytes
Die Verwendung von Built In ist 2 Bytes länger ...
Probieren Sie es online!
quelle
x=>~~x
? Immer noch 6 Bytes.K (oK) , 3 Bytes
Probieren Sie es online!
quelle
Intel 8087 FPU-Maschinencode, 14 Byte
Die Eingabe ist ein Wert mit einfacher Genauigkeit an einem Speicherplatz
A
(aDD
), die Ausgabe ist ein ganzzahliger Wert an dem SpeicherplatzB
(aDW
).Der 8087 muss zuerst durch Setzen des Steuerworts (
0F7FH
) in Richtung Null gerundet werden . Laden Sie dann den Gleitkommawert und speichern Sie ihn als Ganzzahl.quelle
Rot , 4 Bytes
Probieren Sie es online!
Konvertiert einfach den Float in eine Ganzzahl (Konvertierung durch Prototyp)
quelle
Zsh , 10 Bytes
xor
mit 0. Ich bin kürzlich bei einer anderen Herausforderung darauf gestoßen . Probieren Sie es online!Funktioniert nicht in Bash oder POSIX sh (Bindestrich).
quelle
V (vim) , 4 Bytes
Probieren Sie es online!
Danke @DJMcMayhem , 1 Byte gespeichert.
quelle
Fass ,
191713 BytesDies gibt einige nachgestellte nicht druckbare Zeichen aus. Dies wird auch mit einem Fehler beendet. (Jetzt brauchen wir umgekehrte Eingabe!)
quelle
Whitespace (mit vii5ard-Compiler ),
18 bis17 ByteBuchstaben
S
(Leerzeichen),T
(Tabulator) und (Zeilenvorschub) werdenN
nur als Hervorhebungen hinzugefügt.[..._some_action]
nur als Erklärung hinzugefügt.Probieren Sie es online aus. Sie müssen den Code selbst kopieren und einfügen (beachten Sie, dass SE die Tabulatoren in eine Reihe von Leerzeichen konvertiert!), Um den Code auf dem Online-Whitespace-Compiler vii5ard auszuführen. Wenn Sie auf "Ausführen" klicken, werden Sie nach einer Eingabe gefragt (dh
-285.5
). Nach dem Klicken auf "Eingabe" wird die Eingabe fortgesetzt und ausgegeben-283
.Erklärung im Pseudocode:
Whitespace kann E / A nur als Ganzzahl oder Einzelzeichen verwenden. In diesem Fall wird die Eingabe als Ganzzahl gelesen und alle anderen nachgestellten Zeichen ignoriert. Dh
-283.5
oder-283abc5
beides wäre Eingabe (und damit Ausgabe) als-283
.Leider funktioniert dies auf TIO aus zwei Gründen nicht (alle Whitespace-Compiler sind leicht unterschiedlich ..):
no parse
Fehler ausgegeben, wenn wir versuchen, eine Eingabe als Ganzzahl zu lesen, die keine gültige Ganzzahl ist. Stattdessen lesen wir also jeweils ein Zeichen und stoppen (mit einem Fehler), sobald wir auf das gestoßen sind.
oder es keine Eingabe mehr gibt (dh50
/-50
).SSN
, während für TIO ein zusätzlichesS
orT
:SSSN
/ erforderlich istSSTN
. Das ersteS
ist Stapelmanipulation aktivieren ; der zweiteS
ist Push, was als Ganzzahl folgt ; das dritteS
/T
ist positiv / negativ; und anyS
/T
after that (gefolgt von einemN
) ist die Zahl, die wir binär einfügen wollen, woS=0
undT=1
. Für die Ganzzahl 0 spielt dieser Binärteil keine Rolle, da er standardmäßig 0 ist. Aber bei TIO müssten wir immer noch das Positive / Negative angeben und bei den meisten anderen Whitespace-Compilern wie vii5ard nicht.Whitespace (mit TIO-Compiler ), 48 Byte
Buchstaben
S
(Leerzeichen),T
(Tabulator) und (Zeilenvorschub) werdenN
nur als Hervorhebungen hinzugefügt.[..._some_action]
nur als Erklärung hinzugefügt.Probieren Sie es online aus (nur mit Leerzeichen, Tabulatoren und Zeilenumbrüchen).
Erklärung im Pseudocode:
quelle
Pip , 5 Bytes
Probieren Sie es online!
quelle
C # (Visual C # Interactive Compiler) , 9 Byte
Probieren Sie es online!
quelle
Scala , 7 Bytes
Probieren Sie es online!
quelle
x=>x-x%1
.Double=>Double
in diesem Fall.05AB1E , 1 Byte
In der älteren Version (die in Python geschrieben ist) funktioniert die Umwandlung in eine Ganzzahl wie erwartet, um die Dezimalwerte abzuschneiden.
Probieren Sie es online aus.
In der neuen Version von 05AB1E (geschrieben in Elixir) funktioniert es nur mit Zeichenfolgen (auch wenn alle Ganzzahlen / Dezimalzahlen / Zeichenfolgen austauschbar sein sollten, es sei denn, Sie sortieren lexikografisch oder numerisch). Ich schätze, ich kann @Adnan einen Fehler melden .
Probieren Sie es online aus , um Integer- / Dezimal-Eingaben (die zu falschen Ergebnissen führen) mit Zeichenfolgen-Eingaben (die zu korrekten Ergebnissen führen) zu vergleichen.
quelle
ï
Funktioniert problemlos mit 05AB1E, das kein Legacy-Produkt ist . Es ist ein Array-Eingang, der auf seltsame Weise funktioniert.Aheui (Esotop) , 9 Bytes
Probieren Sie es online!
Grundidee aus der Dreiecksantwort (oder jeder anderen Sprache wird die numerische Eingabe als Ganzzahl verwendet).
Lustige Tatsache.
방망희
(ausgesprochenbang-mang-heui
(a
vonark
)) klingt fast genauso wie방망이
(ausgesprochenbang-mang-i
(a
vonark
,i
klingt wieE
), was Fledermaus bedeutet.Wie funktioniert es?
방
Nimmt Zahl als Ganzzahl.망
Gibt den Wert als Zahl aus.희
Beendet das Programm.quelle
PowerShell , 19 Byte
Probieren Sie es online!
Standardmäßig rundet PowerShell die Banker , was ziemlich genau das Gegenteil davon ist, wie viele andere Sprachen runden. Traditionell verwenden wir also, um
[Math]::Truncate()
den Dezimalpunkt und jeden Dezimalteil zu entfernen und die hier interessierte Nullrundung zu erzielen. Das ist jedoch ein bisschen lang, also benutze diesen Tipp können wir also auf Null runden wir die Eingabe implizit in einen String umwandeln, einen regulären Ausdruck ausführen-replace
, um die Periode und alles danach zu entfernen, und die Ausgabe für in der Pipeline belassen implizites Drucken.quelle
Dreieckig , 3 Bytes
Probieren Sie es online!
Triangular nimmt numerische Eingaben als Ganzzahl an. Dezimalwerte werden abgeschnitten. Wenn es akzeptabel ist, die Eingabe nur auf dem Stapel zu belassen, ohne sie zu drucken, kann diese Lösung stattdessen sein:
Dreieckig , 1 Byte
Probieren Sie es online!
quelle