Ihre Einreichung muss eine Liste von Zahlen (in dem von Ihrer Sprache unterstützten Listenformat oder mit mehreren Funktions- / Befehlszeilenparametern) oder eine Folge von Zahlen enthalten, die durch ein anderes Zeichen getrennt sind 0123456789
. In einer Sprache muss es alle addieren und die Summe ausgeben. In einer anderen Sprache muss es sie subtrahiert voneinander in der Reihenfolge ausgeben . Beispiel:
12
5
7
2
In einer Sprache muss es ausgegeben werden 26
, und in einer anderen Sprache muss es ausgegeben werden -2
. Beachten Sie, dass alle eingegebenen Zahlen positive ganze Zahlen kleiner als sind 100
. Es werden nie mehr als 20
Zahlen angegeben, sodass Sie niemals mehr als 2000
oder weniger als ausgeben -1899
. Irgendwelche Fragen? Kommentiere unten!
[code-golf] -[polyglot]
?Antworten:
Jelly / 05AB1E , 3 Bytes
Dies ist ein Hexdump (xxd) des eingereichten Programms.
Probieren Sie es online!
Gelee: Summe
Jelly verwendet die Jelly-Codepage , sodass die folgenden Zeichen angezeigt werden.
Probieren Sie es online!
Wie es funktioniert
05AB1E: Unterschied
05AB1E verwendet Windows-1252 , daher werden die folgenden Zeichen angezeigt .
Probieren Sie es online!
Wie es funktioniert
quelle
Python 2/3, 52 Bytes
int(1-(1/2)*4)
Gibt1
in Python 2 zurück, da1/2
zuerst nach0
und dann nach ausgewertet wird0 * 4 = 0
.int(1-(1/2)*4)
Gibt-1
in Python 3 zurück, da1/2
zuerst nach0.5
und dann nach ausgewertet wirdint(0.5 * 4) = int(2.0) = 2
.quelle
C und C ++ (beide von GCC),
817573 BytesNimmt einen Zeiger auf Array und Länge.
Erläuterung: @Steadybox wird noch verwendet Erläuterung: p Deklariert in C
auto d=.5
eine Ganzzahlvariable mit der automatischen Speicherklasse (die Standardeinstellung), die dann auf 0 initialisiert wird, während in C ++ 11 ein double deklariert wird, das initialisiert wird bis 0,5.C - plus Sprache: Probieren Sie es online!
C ++ - Minus-Sprache: Probieren Sie es online!
quelle
05AB1E / Jelly , 5 Bytes
Probieren Sie es online! (05AB1E)
Probieren Sie es online! (Gelee)
05AB1E sieht :
Erläuterung:Jelly sieht :
Erläuterung:quelle
7f
.Eigentlich / Jelly , 4 Bytes
Dies ist ein Hexdump (xxd) des eingereichten Programms. Es kann nicht in unformatierter Form online getestet werden. TIO unterstützt die CP437-Codierung nicht.
Eigentlich: Summe
Verwendet tatsächlich CP 437 und sieht daher die folgenden Zeichen.
Probieren Sie es online!
Wie es funktioniert
Jelly: Unterschied
Jelly verwendet die Jelly-Codepage , sodass die folgenden Zeichen angezeigt werden.
Probieren Sie es online!
Wie es funktioniert
quelle
actually, Jelly.
:)ṛ
ü
die perfekte Funktion zugewiesen hat > _>jelly, actually
.Python 2 und 3,
4441 BytesNimmt durch Leerzeichen getrennte Zahlen.
-3 Bytes dank @JonathanAllan
Probieren Sie es online aus: Python 2 (minus) Python 3 (plus)
quelle
'-+'[1/2>0]
, um drei Bytes zu speichern.CJam / Jelly , 6 Bytes
CJam
Probieren Sie es online!
Gelee
(unter Verwendung von UTF-8, nicht der Jelly-Codepage)
q~:-
ist die Hilfsverbindung. Da es nicht aufgerufen wird, spielt es keine Rolle, was es tut.S
berechnet die Summe eines Arrays.Probieren Sie es online!
quelle
q~:-½S
. Leider ist das fix (q~:-e#\x7fS
) größer. Probieren Sie es online! (CJam) und online ausprobieren ! , jeder mit seiner eigenen Kodierung, um es selbst zu testen.JavaScript / Cubix, 36 Byte
Versuch es!
Die JavaScript-Funktion kann mit dem folgenden Snippet getestet werden, das Cubix-Programm kann hier getestet werden .
Wie funktioniert das?
JavaScript
Die erste Zeile ist ein Zeilenkommentar zu JavaScript, da sie mit zwei Schrägstrichen beginnt. Daher wird in JavaScript nur die unterste Zeile (
a=>eval(a.join`-`)
) angezeigt, die ein Array als Eingabe verwendet, mit Minuszeichen dazwischen verknüpft und anschließend als Code ausgeführt die Subtraktion aller Elemente im Array.Cubix
Cubix sieht den folgenden Cube (beachten Sie, dass Cubix alle Leerzeichen ignoriert):
Der Anfang
Die IP beginnt in der dritten Zeile und zeigt nach Osten. Es
'I'
drückt den Befehl, der eine Zahl aus der Eingabe entnimmt und auf den Stapel schiebt. Dann wird es'^'
in die Summenschleife umgeleitet .Summenschleife
Ich habe alle Zeichen, die nicht Teil der Summenschleife sind, entfernt und durch No-Ops (
'.'
) ersetzt. Das IP kommt zunächst in der zweiten Zeile an und zeigt nach Osten.Zunächst
'!'
überprüft der Befehl das oberste Element. Wenn dies der Fall ist0
(dh wir haben das Ende der Eingabe erreicht), wird der nächste Befehl ('v'
) ausgeführt, der die IP außerhalb der Schleife widerspiegelt. Wenn wir das Ende der Eingabe noch nicht erreicht haben, addieren wir die beiden obersten Elemente ('+'
das zweite Element ist die Summe bis zu diesem Punkt, das oberste Element die neue Eingabe). Dann springt die IP auf eine andere Seite des Würfels, in das'u'
Zeichen, wodurch die IP eine Kehrtwende ausführt und einen'I'
Befehl ausführt (eine andere Ganzzahl liest), während sie nach Norden zeigt. Die IP springt zurück auf die Oberseite, überspringt ('$'
) den Löschbefehl (';'
) und macht eine weitere Kehrtwende, zurück zu dem Punkt, an dem wir begonnen haben.Das Ende
Wenn die IP außerhalb der Schleife angezeigt wird, werden die folgenden Zeichen ausgeführt:
Diese Anweisungen löschen das oberste Element (das Null ist) und geben dann das oberste Element (die Summe) als Ganzzahl aus. Ist der
'@'
Befehl dann erreicht, so endet das Programm.quelle
Python 2 und 3, 33 Bytes
Nimmt Eingaben als separate Parameter.
Python 2.
Python 3.
quelle
lambda l,*r:l+sum(r)*(1/2-.5)*2
für 31 Bytes*(1/2*4-1)
ist ein Byte weniger als deins.JS (ES6), CGL (CGL Golfing Language) ,
3226 BytesJS subtrahiert und CGL addiert.
JS:
Eine anonyme Funktion, die jedes Element im Array mit subtrahiert
Array#reduce
.Ein Kommentar.
CGL
Was wie ein Leerzeichen in der ersten Zeile aussieht, ist eigentlich ein nicht unterbrechendes Leerzeichen, ein Kommentar in CGL. Die erste Zeile wird ignoriert.
Sie
/
tun nichts. Der-
aktuelle Stapelzeiger wird dekrementiert, sodass er auf die Eingabe zeigt.⨥
addiert den aktuellen Stapel (Eingabe), schiebt diesen zum nächsten Stapel und erhöht den aktuellen Stapel. Es wird implizit ausgegeben.quelle
x=>eval(x.join`-`)
, indem Sie 5BJavaScript (ES6) / QBasic,
8483 BytesEine andere Lösung mit dem Kommentar-Hack!
JavaScript berechnet die Summe. Es wird ein Array mit Zahlen als Eingabe verwendet. Ausgänge als Funktion
return
. Sie können die Funktion wie folgt aufrufenalert(f([10,20,30]))
.QBasic berechnet die Differenz. Bittet wiederholt um Eingabe. Sobald Sie einen Wert eingeben, wird die Differenz aller von Ihnen eingegebenen Zahlen bis zum Zeitpunkt des Treffens ausgegeben Enterund erneut eine Eingabe angefordert. Macht so weiter bis zum Ende von allem.
Wie funktioniert es?
Markiert in QBasic (eine Sprache der strukturierten BASIC-Familie, für die keine Zeilennummern erforderlich sind)
'
den Anfang eines Kommentars, der bis zum Ende der Zeile reicht. In JavaScript markiert es den Anfang einer Zeichenfolge. Die gesamte erste Zeile wird in QBasic als Kommentar markiert, in JavaScript wird die Zeile jedoch ausgeführt (und diese Zeile enthält den JavaScript-Teil, der die Zahlen hinzufügt, sowie ein/*
am Ende einen Kommentar, um den Rest auszublenden des QBasic-Codes aus dem JavaScript-Interpreter.)Der Code von der zweiten bis zur vorletzten Zeile enthält den QBasic-Code zur Berechnung der Differenz aller eingegebenen Zahlen (der Code ist sehr selbsterklärend).
Die letzte Zeile enthält
'*/
.'
bewirkt, dass der QBasic-Interpreter den folgenden Code als Kommentar interpretiert, während er in JavaScript keine Auswirkungen hat, da er Teil eines Kommentars ist (der am Ende der ersten Zeile gestartet wurde). Der folgende Code (*/
) bewirkt, dass JavaScript den in der ersten Zeile gestarteten Kommentar beendet. Er wird jedoch in QBasic nicht ausgeführt, da QBasic denkt, dass er Teil eines Kommentars ist.Testfälle
JavaScript (fügt hinzu):
QBasic (subtrahiert):
Gehen Sie zu dieser Website . Kopieren Sie den folgenden Code und fügen Sie ihn in den Texteditor ein:
Der Grund, warum Zeilennummern erforderlich sind, ist, dass die von mir erwähnte Website nur unstrukturierte BASIC-Sprachen unterstützt. Und diese Website ist der einzige anständige Online-BASIC-Interpreter, den ich finden konnte. Das Ausführen des Codes am Anfang des Posts (der Code ohne Zeilennummern) sollte jedoch in jedem guten QBasic-Interpreter, der strukturierte BASIC- und -Dateien unterstützt, problemlos funktionieren
'
als Kommentar-Starter gut funktionieren (nur wenige tun dies jedoch nicht, die meisten).Anmerkungen
END
da der Interpreter ihn niemals erreichen wird! (Es wird für immer in der Endlosschleife stecken bleiben und immer nach mehr Input fragen.)quelle
Brain-Flak / Brain-Flueue , 20 Bytes
Probieren Sie es online! (Brain-Flak) (plus)
Probieren Sie es online! (Brain-Flueue) (minus)
Erläuterung
Der einzige Unterschied zwischen Brain-Flak und Brain-Flueue besteht darin, dass Brain-Flueue die beiden in Brain-Flak verwendeten Stapel (last in first out) durch zwei Warteschlangen (first in first out) ersetzt. Natürlich nutzt dieses Programm diesen Unterschied.
Kommentierter Code
quelle