Właśnie wypróbowałem grę o nazwie Couch 2048 .
(Uwaga: powinieneś rzucić okiem, aby lepiej zrozumieć to pytanie.)
Ponieważ nie było to dla mnie bardzo ekscytujące, zadawałem sobie pytanie „Ile jeszcze do 2048 roku !?”
To zainspirowało mnie do opublikowania wyzwania, ponieważ obliczenie tego nie jest tak łatwe, jak myślałem.
Twój cel:
biorąc pod uwagę listę piłek na kanapie, musisz wypisać, ile piłek o wartości 2 musi spaść z nieba, aby wygrać (osiągając piłkę 2048).
- Załóż, że dane wejściowe są prawidłowe.
- Załóż, że gracz nie upuści żadnych piłek.
- Załóżmy, że kule, które spadają z nieba, mają zawsze wartość 2, jak już powiedziałem.
- Prawidłowe przykłady wyjściowe: 3, „4”, [5], [„6”]
Edycja:
Powinienem coś wyjaśnić:
- Musisz wydrukować najmniejszą potrzebną liczbę 2 sekund.
Przypadki testowe:
[2048] -> 0
już wygrałeś
[1024,1024] -> 0
Nie potrzebujesz więcej piłek, aby wygrać
[1024,512,256,128,64,32,16,8,4,2] -> 1
Jedna piłka wymagana do „aktywacji łańcucha”
[512] -> 768
[512,2] -> 767
[4,16,64] -> 982
Uwagi :
Nie jestem native speakerem - Powiedz mi, czy zauważyłeś literówkę lub jakiś tekst nie gramatyczny.
Jeśli coś jest niejasne, zapytaj w komentarzach.
[4,16,64] -> 22
?2048
i podzieleniu przez2
- jeśli tak, możesz chcieć dokładnie sprawdzić ostatni przypadek testowy - jeśli nie, użyj go jako przykładu, aby wyjaśnić, dlaczego dane wyjściowe nie są „t982
.Odpowiedzi:
Java 8, 17 bajtów
Port odpowiedzi JavaScript @LuisFelipeDeJesusMunoz .
Wypróbuj online.
Wyjaśnienie:
źródło
Brain-Flak , 72 bajty
Wypróbuj online!
źródło
Python 2 , 22 bajty
Wiesz, właśnie zdałem sobie sprawę, że
4**5
ma taką samą długość jak1024
.Wypróbuj online!
źródło
MathGolf ,
65 bajtówPierwsza odpowiedź MathGolf. :)
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
źródło
05AB1E , 5 bajtów
Port odpowiedzi JavaScript @LuisFelipeDeJesusMunoz .
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
źródło
APL (Dyalog Unicode) , 10 bajtów
Wypróbuj online!
źródło
JavaScript (Node.js) , 25 bajtów
Na podstawie komentarza i odpowiedzi @Shaggys
-3 bajty od @Arnauld = D
Wypróbuj online!
źródło
J , 10 bajtów
Wypróbuj online!
Alternatywny:
J , 10 bajtów
Wypróbuj online!
źródło
Rubinowy , 17 bajtów
Wypróbuj online!
źródło
Catholicon , 5 bajtów
Wyjaśnienie:
źródło
TI-Basic, 8 bajtów
źródło
JavaScript, 28 bajtów
Wypróbuj online
źródło
Galaretka ,
76 bajtówWypróbuj online!
Wyjaśnienie:
-1 bajt przy użyciu liczby podstawowej-250
źródło
Japt,
76 bajtówWypróbuj lub sprawdź wszystkie przypadki testowe
źródło
perl -aE, 27 bajtów
Odczytuje linię z liczbami (oddzielonymi spacjami)
STDIN
i zapisuje odpowiedź naSTDOUT
.Odejmuje wszystkie liczby od danych wejściowych od 2048, a resztę dzieli przez 2.
-a
Przełącznik umieszcza tablicę@F
(jedna liczba na element). Jeśli interpolujemy tablicę w łańcuch (co tutaj robimy), perl umieszcza wartość$"
między elementami. Mała używana zmienna$:
jest domyślna\n-
; a ponieważ białe znaki między tokenami są ignorowane, wynik odejmuje wszystkie liczby od 2048.eval
Obliczenia są wykonywane.źródło
JavaScript (Node.js) , 33 bajty
Wypróbuj online!
Dlaczego tego nie robisz
[1024,1024,1024]
?źródło
R , 17 bajtów
Wypróbuj online!
źródło
TeaScript , 11 bajtów
Wypróbuj online!
źródło
Stax , 6 bajtów
Uruchom i debuguj
źródło
Perl 6 , 12 bajtów
Wypróbuj online!
Anonimowy Cokolwiek lambda, które pobiera listę i zwraca liczbę.
źródło
AWK, 26 bajtów
Numery wejściowe są oddzielone znakami nowej linii (tj. Jedna na linię)
źródło
Neim, 6 bajtów
Całkiem nowy w Neimie, ale działał
Wyjaśnienie:
Wypróbuj online!
źródło
JAVA, 30 bajtów
źródło
RAD , 10 bajtów
Wypróbuj online!
źródło
Clojure , 24 bajty
Wypróbuj online!
źródło
Haskell , 16 bajtów
Anonimowa funkcja, pobiera listę i zwraca liczbę zmiennoprzecinkową.
Wypróbuj online!
źródło
F #, 24 bajty
1024 minus suma podzielona przez 2.
źródło