Ich habe gerade ein Spiel namens Couch 2048 ausprobiert .
(Hinweis: Um diese Frage besser zu verstehen, sollten Sie einen Blick darauf werfen.)
Da es für mich nicht sehr aufregend war, habe ich mich gefragt , wie viel mehr bis 2048 !?
Das hat mich dazu inspiriert, eine Herausforderung zu posten, weil es nicht so einfach ist, dies zu berechnen, wie ich dachte.
Ihr Ziel:
Ausgehend von einer Liste von Bällen auf dem Sofa müssen Sie ausgeben, wie viele Bälle mit einem Wert von 2 vom Himmel fallen müssen, damit man das Spiel gewinnen kann (durch Erreichen des Balls 2048).
- Angenommen, die Eingabe ist gültig.
- Angenommen, der Spieler lässt keine Bälle fallen.
- Angenommen, die Kugeln, die vom Himmel fallen, haben immer einen Wert von 2, wie ich schon sagte.
- Gültige Ausgabebeispiele: 3, "4", [5], ["6"]
Bearbeiten:
Ich sollte etwas klarstellen:
- Sie müssen die kleinste Menge von 2s drucken, die benötigt wird.
Testfälle:
[2048] -> 0
Sie haben bereits gewonnen.
[1024,1024] -> 0
Sie brauchen keine Bälle mehr, um zu gewinnen.
[1024,512,256,128,64,32,16,8,4,2] -> 1
Ein Ball ist erforderlich , um die Kette zu aktivieren.
[512] -> 768
[512,2] -> 767
[4,16,64] -> 982
Anmerkungen :
Ich bin kein Muttersprachler. Sagen Sie mir, ob Sie einen Tippfehler oder einen nicht grammatikalischen Text entdeckt haben.
Wenn etwas unklar ist, fragen Sie in Kommentaren.
[4,16,64] -> 22
?2048
und durch diesen zu dividieren.2
Wenn dies nicht der Fall ist, erläutern Sie anhand dieses Beispiels, warum die Ausgabe nicht erfolgt nicht982
.Antworten:
Java 8, 17 Bytes
Port von @LuisFelipeDeJesusMunoz 'JavaScript-Antwort .
Probieren Sie es online aus.
Erläuterung:
quelle
Brain-Flak , 72 Bytes
Probieren Sie es online!
quelle
Python 2 , 22 Bytes
Weißt du, ich habe gerade festgestellt, dass
4**5
das die gleiche Länge wie ist1024
.Probieren Sie es online!
quelle
MathGolf ,
65 BytesErste MathGolf Antwort. :)
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle
05AB1E , 5 Bytes
Port von @LuisFelipeDeJesusMunoz 'JavaScript-Antwort .
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle
APL (Dyalog Unicode) , 10 Bytes
Probieren Sie es online!
quelle
JavaScript (Node.js) , 25 Byte
Basierend auf dem Kommentar und der Antwort von @Shaggys
-3 Bytes von @Arnauld = D
Probieren Sie es online!
quelle
J 10 Bytes
Probieren Sie es online!
Alternative:
J 10 Bytes
Probieren Sie es online!
quelle
Ruby , 17 Bytes
Probieren Sie es online!
quelle
Katholikon , 5 Bytes
Erläuterung:
quelle
TI-Basic, 8 Bytes
quelle
JavaScript, 28 Byte
Probieren Sie es online aus
quelle
Gelee ,
76 BytesProbieren Sie es online!
Erläuterung:
-1 Byte unter Verwendung einer Basis-250-Zahl
quelle
Japt,
76 BytesProbieren Sie es aus oder überprüfen Sie alle Testfälle
quelle
Perl -aE, 27 Bytes
Dies liest eine Zeile mit Zahlen (Leerzeichen getrennt)
STDIN
und schreibt die Antwort anSTDOUT
.Was es tut, ist, alle Zahlen von der Eingabe von 2048 zu subtrahieren und den Rest durch 2 zu teilen. Der
-a
Schalter setzt das in das Array@F
(eine Zahl pro Element). Wenn wir ein Array in einen String interpolieren (was wir hier tun), setzt Perl den Wert von$"
zwischen die Elemente. Die wenig verwendete Variable$:
ist default\n-
. und da der Leerraum zwischen den Tokens ignoriert wird, subtrahiert das Ergebnis alle Zahlen von 2048. Daseval
führt die Berechnung durch.quelle
JavaScript (Node.js) , 33 Byte
Probieren Sie es online!
Warum machst du nicht weiter
[1024,1024,1024]
?quelle
R , 17 Bytes
Probieren Sie es online!
quelle
TeaScript , 11 Bytes
Probieren Sie es online!
quelle
Stax , 6 Bytes
Führen Sie es aus und debuggen Sie es
quelle
Perl 6 , 12 Bytes
Probieren Sie es online!
Anonym Welches Lambda auch immer, das eine Liste aufnimmt und eine Zahl zurückgibt.
quelle
AWK, 26 Bytes
Eingabenummern werden durch Zeilenumbrüche getrennt (dh eine pro Zeile)
quelle
Neim, 6 Bytes
Ziemlich neu für Neim, aber es hat funktioniert
Erläuterung:
Probieren Sie es online!
quelle
Java, 30 Bytes
quelle
RAD , 10 Bytes
Probieren Sie es online!
quelle
Clojure , 24 Bytes
Probieren Sie es online!
quelle
Haskell , 16 Bytes
Eine anonyme Funktion nimmt eine Liste und gibt einen Float zurück.
Probieren Sie es online!
quelle
F #, 24 Bytes
1024 minus die Summe geteilt durch 2.
quelle