Implementieren Sie eine Funktion diff, die drei Ganzzahlen x, y und z als Eingabe verwendet. Es sollte zurückgegeben werden, ob das Subtrahieren einer dieser Zahlen von einer anderen die dritte ergibt.
Test cases:
diff(5, 3, 2) yields True because 5 - 3 = 2
diff(2, 3, 5) yields True because 5 - 3 = 2
diff(2, 5, 3) yields True because 5 - 3 = 2
diff(-2, 3, 5) yields True because 3 - 5 is -2
diff(-5, -3, -2) # -5 - -2 is -3
diff(2, 3, -5) yields False
diff(10, 6, 4) yields True because 10 - 6 = 4
diff(10, 6, 3) yields False
Sie müssen die Funktion nicht benennen. Möglicherweise implementieren Sie Standardeingabemethoden. Die obigen Beispiele sind keine strengen Richtlinien.
Antworten:
Gelee ,
53 BytesVielen Dank an @ Sp3000 für das Speichern von zwei Bytes!
Code verwendet den gleichen Algorithmus wie @ xnors großartige Antwort :
Erläuterung:
Dies gibt
[]
als falsch und alles andere als wahr.Probieren Sie es online!
quelle
Python 3, 21 Bytes
Wenn sich zwei Zahlen addieren, verdoppelt sich die Summe aller drei Zahlen gegenüber der anderen Zahl, sodass die Hälfte der Summe ein Element der Liste ist. Python 3 wird benötigt, um Unterteilungen zu vermeiden, es sei denn, die Zahlen sind wie
3.0
und nicht wie angegeben3
.quelle
ES6, 31 Bytes
Fügen Sie 5 Bytes hinzu, wenn Sie die Funktion benennen müssen
diff
.Bearbeiten: 2 Bytes dank @Alex L gespeichert.
quelle
||
mit|
(glaube ich)|
Booleschen Werten genau dann einen Booleschen Wert zurück, wenn beide Werte Boolesche Werte sind. Alsotrue | false == true
, aber3 | 5 == 7
. Gleiches gilt&&
und&
. Der einzige Unterschied zwischen|
und||
wenn es um Boolesche Werte geht: Nimmt|
den ersten und den zweiten Wert und ermittelt das ODER dieser beiden.||
nimmt den ersten Wert an; Wenn dies der Fall isttrue
, geben Sie den zweiten Wert zurück.true | false
wird in JavaScript zu 1 ausgewertet (was zwar wahr, aber nicht boolesch ist).APL,
85 BytesDies ist ein monadischer Funktionszug, der ein Array akzeptiert und einen Booleschen Wert (0/1 in APL) zurückgibt. Es verwendet den gleichen Algorithmus wie die Python 3- Antwort von xnor .
Erläuterung:
Probieren Sie es online aus
3 Bytes gespart dank Dennis!
quelle
JavaScript ES6,
383433 BytesSehr einfache anonyme Funktion, die aus der Python-Antwort entlehnt ist. Übernimmt die Eingabe
x
als Array; zurücktrue
oderfalse
. Bytes zu Molarmanful und jrich rasiertEin 38-Byte-Programm, bei dem jede Zahl als Argument verwendet wird:
quelle
x=>x.some(a=>a==eval(x.join`+`)/2)
, das spart 4 Bytes.x=>x.some(a=>2*a==x[0]+x[1]+x[2])
scheint zu funktionieren.Oracle SQL 11.2, 49 Bytes
@Xnor-Lösung umschreiben, ein großes Lob an ihn.
quelle
J, 6 Bytes
Versuchen Sie es mit J.js .
Wie es funktioniert
quelle
DUP , 31 Zeichen / 39 Bytes
Try it here!
Mein erster DUP-Beitrag! Unicode ist Ihre Auster.
Es ist eine anonyme Funktion / Lambda. Verwendung:
Erläuterung
quelle
ø
Hat Codepunkt 248, ist also ein Byte, wenn es als ISO 8859-1 codiert ist.Java 7, 81
quelle
Perl 6,
2019 BytesIch habe zwei Funktionen, die in der Byteanzahl gleich sind, also werde ich beide setzen. Schätzen Sie, was Sie interessiert.
Verwendung: Weisen Sie eine der Variablen zu, von der aus Sie sie aufrufen können.
EDIT: Danke @ b2gills für die Byte-Reduzierung
quelle
{@_∋@_.sum div 2}
und{@_∋+~(@_.sum/2)}
sind beide kürzer∋
das?Java 8 (Lambda-Funktion), 29 Byte
Java-Code-Golflösungen sind normalerweise nur kurz, wenn das Programm kein voll funktionsfähiges Programm sein muss. (* Husten Husten * Klassendeklaration, Hauptmethode)
quelle
Pyth, 6 Bytes
Probieren Sie es online!
Erwartet die Eingabe als Liste von Ganzzahlen. Gibt 0 aus, wenn keine Zahl gebildet werden kann, indem die anderen beiden subtrahiert werden, und> 0, wenn mindestens eine möglich ist.
Erläuterung:
Gleicher Algorithmus wie die Antwort von @xnor
quelle
05AB1E , nicht konkurrierend
4 Bytes , nicht konkurrierend wegen einer blöden Sache. Code:
Verwenden von 0 als falsch und> 0 als wahr. Verwendet CP-1252-Codierung.
quelle
;
die Spitze des Stapels halbiert. Aber raten Sie mal, ich habe es nie implementiert -_-.Kona 16 Zeichen
Nimmt einen Vektor vom Stapel, summiert ihn, dividiert durch 2 und bestimmt, ob er sich im Vektor befindet. Gibt 1 als wahr und 0 als falsch zurück.
Angerufen über
quelle
jq, 17 Zeichen
(Noch eine andere Umschreiben von xnor ‚s Python 3 Antwort . Upvotes zu , dass man gehen sollte.)
Eingabe: Array mit 3 ganzen Zahlen.
Probelauf:
Online-Test:
jq, 18 Zeichen
(17 Zeichen Code + 1 Zeichen Befehlszeilenoption.)
Eingabe: Liste mit 3 ganzen Zahlen.
Probelauf:
quelle
MATL , 5 Bytes
Mit @ xnors großartigem Ansatz :
Probieren Sie es online!
Brute-Force-Ansatz, 12 Byte :
Probieren Sie es online!
quelle
𝔼𝕊𝕄𝕚𝕟, 7 Zeichen / 9 Bytes
Try it here (Firefox only).
Meh. Ich finde immer noch bessere Wege. Es ist nur @ xnors großartiger Algorithmus.
quelle
CJam, 10
12Bytes2 Bytes entfernt dank @ MartinBüttner.
Dies zeigt eine Zahl als wahres Ergebnis und keine Ausgabe als falsches Ergebnis an.
Probieren Sie es hier aus
quelle
Im Ernst, 6 Bytes
Gibt 0 aus, wenn dies falsch ist, und eine positive Ganzzahl, wenn dies nicht der Fall ist.
quelle
Mathematica,
20 bis19 BytesFunktioniert ähnlich wie die meisten anderen Antworten.
quelle
MemberQ[2{##},+##]&
? (und du hast deine Byteanzahl vergessen)Haskell, 20 Bytes
Verwenden von xnors Lösung.
quelle
(/)
dies nicht für ganze Zahlen funktioniert und die Challenge nach ganzen Zahlen fragt, bin ich mir nicht sicher, ob dies tatsächlich eine gültige Lösung ist.(\l->sum l/2`elem`l).map fromInteger
und es kann wie folgt verwendet werden:((\l->sum l/2`elem`l).map fromInteger) ([2,3,5] :: [Integer])
. Ich denke , was warf mich weg war xnor die Verwendung von Python zu erwähnen , 3 , so dass die Eingabe nicht 3,0 statt 3 sein , hatte ich gedacht , der Eingangstyp wurde nicht angegeben, sondern nur die Art , wie sie geschrieben wurden ...sum
nochelem
funktioniert hätte, hätte ich wahrscheinlich angeben sollen, dass es sich um eine Liste handelt, aber da diese Antwort buchstäblich das ist, was xnor (in Haskell) übermittelt hat, hielt ich sie nicht für notwendig. :)Perl, 24 + 4 = 28 Bytes
Erfordert
-paX
Flags zum Ausführen, druckt1
als True und nichts als False:-X
Deaktiviert alle Warnungen.quelle
$_=eval(y/ /+/r)/2~~@F
(verwendet dieselben Befehlszeilenoptionen).tr
:)-X
indem Sie eine Perl-Version angeben [5.10 .. 5.18). (Smart Match wurde in 5.10 eingeführt und experimentelle Warnungen wurden in 5.18 eingeführt. Jede Version zwischen diesen beiden wird gut mit~~
ohne funktionieren-X
.)Jolf, 6 Bytes
Probieren Sie es hier aus!
Dies ist xnors großartige Lösung für das Problem, aber in Jolf.
quelle
Pylone , 8
Noch eine andere Implementierung von xnors Algorithmus.
Wie es funktioniert:
quelle
SpecBAS - 36 Bytes
Verwendet die Formel xnors
Gibt 1 aus, wenn wahr, und 0, wenn falsch
quelle
05AB1E ,
65 Bytes-1 Byte durch Erstellen eines Ports von @xnors Python 3-Algorithmus .
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
Ich bin mir ziemlich sicher, dass
м_O
man es verkürzen kann, aber ich bin mir nicht sicher, welche Befehle ich dafür verwenden muss.quelle
R , 23 Bytes
Probieren Sie es online!
Schamloser Hafen von Xnors Antwort .
quelle