Saya baru saja mencoba permainan bernama Couch 2048 .
(Catatan: Anda harus memiliki pandangan untuk lebih memahami pertanyaan ini.)
Karena itu tidak terlalu menarik bagi saya, saya telah bertanya pada diri sendiri 'Berapa banyak lagi sampai 2048 !?'
Itu mengilhami saya untuk memposting tantangan, karena menghitung ini tidak semudah yang saya kira.
Tujuan Anda:
Diberikan daftar bola di sofa, Anda harus mengeluarkan berapa banyak bola dengan nilai 2 harus jatuh dari langit sehingga seseorang dapat memenangkan permainan (dengan mencapai bola 2048).
- Anggap inputnya valid.
- Asumsikan pemain tidak akan menjatuhkan bola apa pun.
- Asumsikan bola yang jatuh dari langit selalu memiliki nilai 2, seperti yang saya katakan.
- Contoh output yang valid: 3, "4", [5], ["6"]
Sunting:
Saya harus mengklarifikasi sesuatu:
- Anda harus mencetak jumlah terkecil yang diperlukan.
Uji kasus:
[2048] -> 0
Anda telah menang.
[1024,1024] -> 0
Anda tidak perlu lagi bola untuk menang.
[1024,512,256,128,64,32,16,8,4,2] -> 1
Satu bola diperlukan untuk 'mengaktifkan rantai'
[512] -> 768
[512,2] -> 767
[4,16,64] -> 982
Catatan :
Saya bukan penutur asli - Beri tahu saya jika Anda melihat kesalahan ketik atau teks non-gramatikal.
Jika ada sesuatu yang tidak jelas, tanyakan dalam komentar.
[4,16,64] -> 22
?2048
dan bagi dengan2
- jika demikian, Anda mungkin ingin memeriksa ulang kasus uji terakhir - jika tidak, silakan gunakan sebagai contoh untuk menjelaskan mengapa output tidak 't982
.Jawaban:
Java 8, 17 byte
Port dari jawaban JavaScript @LuisFelipeDeJesusMunoz .
Cobalah online.
Penjelasan:
sumber
Brain-Flak , 72 byte
Cobalah online!
sumber
Python 2 , 22 byte
Kau tahu, aku baru sadar kalau
4**5
panjangnya sama1024
.Cobalah online!
sumber
MathGolf ,
65 byteJawaban MathGolf pertama. :)
Cobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
sumber
05AB1E , 5 byte
Port dari jawaban JavaScript @LuisFelipeDeJesusMunoz .
Cobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
sumber
APL (Dyalog Unicode) , 10 byte
Cobalah online!
sumber
JavaScript (Node.js) , 25 byte
Berdasarkan komentar dan jawaban @Shaggys
-3 byte dari @Arnauld = D
Cobalah online!
sumber
J , 10 byte
Cobalah online!
Alternatif:
J , 10 byte
Cobalah online!
sumber
Ruby , 17 byte
Cobalah online!
sumber
Catholicon , 5 byte
Penjelasan:
sumber
TI-Basic, 8 byte
sumber
JavaScript, 28 byte
Cobalah online
sumber
Jelly ,
76 byteCobalah online!
Penjelasan:
-1 byte dengan menggunakan nomor basis-250
sumber
Japt,
76 byteCobalah atau verifikasi semua kasus uji
sumber
perl -aE, 27 byte
Ini membaca baris dengan angka (dipisahkan spasi)
STDIN
, dan menulis jawabannyaSTDOUT
.Apa yang dilakukannya adalah mengurangi semua angka dari input dari 2048, dan itu membagi sisanya dengan 2.
-a
Switch menempatkan dalam array@F
(satu nomor per elemen). Jika kita menginterpolasi array ke dalam string (yang kita lakukan di sini), perl menempatkan nilai$"
antara elemen. Variabel yang sedikit digunakan$:
adalah default\n-
; dan karena ruang putih antara token diabaikan, hasilnya mengurangi semua angka dari 2048.eval
Penghitungannya dilakukan.sumber
JavaScript (Node.js) , 33 byte
Cobalah online!
Mengapa Anda tidak melakukannya
[1024,1024,1024]
?sumber
R , 17 byte
Cobalah online!
sumber
TeaScript , 11 byte
Cobalah online!
sumber
Stax , 6 byte
Jalankan dan debug itu
sumber
Perl 6 , 12 byte
Cobalah online!
Anonim Apapun lambda yang mengambil daftar dan mengembalikan nomor.
sumber
AWK, 26 byte
Nomor input dipisahkan oleh baris baru (yaitu satu per baris)
sumber
Neim, 6 byte
Cukup baru untuk Neim tetapi membuatnya bekerja
Penjelasan:
Cobalah online!
sumber
JAVA, 30 byte
sumber
RAD , 10 byte
Cobalah online!
sumber
Clojure , 24 byte
Cobalah online!
sumber
Haskell , 16 byte
Fungsi anonim, mengambil daftar dan mengembalikan float.
Cobalah online!
sumber
F #, 24 byte
1024 dikurangi jumlah dibagi 2.
sumber