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] -> 0Anda tidak perlu lagi bola untuk menang.
[1024,512,256,128,64,32,16,8,4,2] -> 1Satu 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.
2048dan bagi dengan 2- jika demikian, Anda mungkin ingin memeriksa ulang kasus uji terakhir - jika tidak, silakan gunakan sebagai contoh untuk menjelaskan mengapa output tidak 't 982.
[4,16,64] -> 22?