Bosan dengan selalu bertanya-tanya berapa banyak lagi Pokémon yang perlu Anda tangkap untuk mendapatkan evolusi tingkat tinggi itu? Bertanya-tanya lagi! Sekarang Anda akan menulis program atau fungsi lengkap untuk menghitungnya untuk Anda!
Tantangan:
Sebagai masukan, program Anda akan menerima daftar biaya dalam permen untuk membuat Pokémon naik ke tingkat berikutnya. (Daftar ini dapat dipisahkan oleh pembatas pilihan Anda, atau sebagai argumen fungsi). Program Anda kemudian akan mengembalikan atau mencetak jumlah Pokemon yang harus ditangkap, termasuk yang akan berevolusi, untuk berevolusi melalui semua tingkatan yang diberikan.
Bagaimana Anda menghitung ini? Seperti itu:
1. Tambahkan semua biaya permen: 12 + 50 = 62
2. Kurangi 3 permen dari total, ini berasal dari satu Pokémon yang Anda simpan untuk berevolusi: 62 - 3 = 59
3. Bagi angka ini dengan 4 (3 untuk menangkap, 1 untuk memberikannya kepada Profesor), selalu ambil ceil()
hasilnya: ceil(59/4) = 15
4. Akhirnya, tambahkan 1 ke total ini untuk mendapatkan jumlah total Pokemon yang harus kamu tangkap, 16!
Contoh Input -> Output
:
[4] -> 2
[50] -> 13
[12, 50] -> 16
[25, 100] -> 32
[19, 35, 5, 200] -> 65
Kemenangan:
Aplikasi ini telah menghabiskan sebagian besar ruang di ponsel Anda, jadi program Anda harus sesingkat mungkin. Program atau fungsi lengkap dengan jumlah byte terkecil akan diterima dalam dua minggu! (dengan ikatan apa pun diselesaikan oleh entri yang paling awal dikirimkan!)
floor(Sum(L)/4)+1
? Rumus saat ini tidak berfungsi untuk jumlah yang habis dibagi 4. Misalnya[400]
akan mengembalikan 100, padahal kenyataannya harus 101 untuk tambahan untuk berkembang.Jawaban:
05AB1E , 4 byte
Penjelasan
Cobalah online
sumber
Jelly,
54 byteCobalah online!
S
um, membagi bilangan bulat:
oleh4
dan kenaikan‘
.sumber
[4]
.Brain-Flak 112 byte
Cobalah secara Online!
Penjelasan
Ini menjumlahkan tumpukan, mengurangi satu, membaginya dengan empat, dan menambahkan satu.
sumber
[4]
.C # REPL, 15 byte
Diputar ke
Func<IEnumerable<int>, int>
.sumber
Sebenarnya, 4 byte
Cobalah online!
Penjelasan:
sumber
Brachylog , 5 byte
Cobalah online!
Penjelasan
Jawaban yang sangat orisinal ...
sumber
Python 2, 21 byte
Ide itu!
Formula:
((sum(a)-1)//4)+1
mana//
adalahfloor-div
.sumber
[4]
.BASH (sed + bc) 19
Input adalah
+
daftar yang terpisah pada stdinEg:
echo '(19+35+5+200)'| sed 's~)~+4)/4~'|bc
sumber
Haskell, 17 byte
sumber
Pyke, 4 byte
Coba di sini!
sumber
Pyth, 5 byte
Coba di sini!
Jumlahkan input dengan
sQ
, bagi dengan 4 dengan/4
dan akhirnya bertambahh
.sumber
CJam, 7 byte
Coba di sini!
Menentukan blok tanpa nama yang mengharapkan input pada stack dan meninggalkan hasilnya di sana.
:+
menjumlahkan daftar,4/
membagi hasilnya dengan 4 dan)
menambahkannya.sumber
Retina ,
1817 bytesHitungan byte mengasumsikan penyandian ISO 8859-1.
Input dipisahkan oleh umpan baris.
Cobalah online!
sumber
R, 22 byte
sumber
JavaScript, 29 Bytes
sumber
SILOS
100 99103 karakter + 22 untuk input sampelKode dengan harness pengujian.
masukan sebagai serangkaian perintah yang ditetapkan untuk memodifikasi tempat tumpukan mulai dari tempat 512.
Cobalah Online!
sumber
Python 2, 40 byte
sumber
sum(s)
merupakan bilangan bulat dan/
dalam Python 2 akan menjadi pembagian bilangan bulat ketika kedua argumen adalah bilangan bulat.[4]
.