Alkitab adalah salah satu buku paling berpengaruh yang pernah ditulis, dan umumnya disebut sebagai buku terlaris sepanjang masa . Itu ditulis oleh sekitar 40 penulis berbeda selama ratusan tahun sebelum dikompilasi ke dalam bentuk saat ini. Tetapi yang menarik tentang Alkitab adalah cara membaginya. Ini dibagi menjadi 2 perjanjian yang berbeda, yang dibagi menjadi 66 buku yang lebih kecil, yang masing-masing dibagi menjadi beberapa bab yang lebih kecil, yang masing-masing dibagi menjadi beberapa ayat.
Saya pikir ini akan menjadi tantangan yang menyenangkan untuk mencoba menyandikan jumlah bab dalam setiap buku dengan kode sesingkat mungkin. Jadi untuk tantangan hari ini, Anda harus menulis sebuah program atau fungsi yang mengambil salah satu buku sebagai input, dan menampilkan jumlah bab dalam buku itu menurut The King James Version .
Anda dapat mengambil IO dalam format apa pun yang masuk akal, misalnya membaca / menulis STDIN / STDOUT atau file, argumen fungsi / nilai pengembalian, mendorong pengguna, dll. Semuanya diizinkan. Masukan akan selalu menjadi salah satu dari 66 buku Alkitab, dan hanya huruf kecil. Ini berarti bahwa jika Anda diberi input lain, perilaku yang tidak terdefinisi diizinkan. Karena hanya ada 66 kemungkinan input dan output, semuanya disediakan di sini, menurut halaman Wikipedia tentang bab-bab Alkitab dalam The King James Version :
genesis 50
exodus 40
leviticus 27
numbers 36
deuteronomy 34
joshua 24
judges 21
ruth 4
1 samuel 31
2 samuel 24
1 kings 22
2 kings 25
1 chronicles 29
2 chronicles 36
ezra 10
nehemiah 13
esther 10
job 42
psalms 150
proverbs 31
ecclesiastes 12
song of solomon 8
isaiah 66
jeremiah 52
lamentations 5
ezekiel 48
daniel 12
hosea 14
joel 3
amos 9
obadiah 1
jonah 4
micah 7
nahum 3
habakkuk 3
zephaniah 3
haggai 2
zechariah 14
malachi 4
matthew 28
mark 16
luke 24
john 21
acts 28
romans 16
1 corinthians 16
2 corinthians 13
galatians 6
ephesians 6
philippians 4
colossians 4
1 thessalonians 5
2 thessalonians 3
1 timothy 6
2 timothy 4
titus 3
philemon 1
hebrews 13
james 5
1 peter 5
2 peter 3
1 john 5
2 john 1
3 john 1
jude 1
revelation 22
Karena tantangan ini adalah tentang menemukan cara optimal untuk menyandikan setiap nama buku dan jumlah bab, menggunakan setiap bawaan yang memberikan informasi tentang Alkitab tidak diizinkan. Namun, karena akan menarik untuk melihat bahasa mana yang memiliki bawaan seperti itu, jangan ragu untuk membagikan versi kedua yang tidak bersaing bersama dengan jawaban Anda. Mengambil informasi dari sumber eksternal juga tidak diizinkan (tidak ada celah standar yang diizinkan, tetapi saya pikir akan bermanfaat untuk menyebutkannya secara eksplisit).
Seperti biasa, ini adalah tantangan kode-golf , jadi cobalah membuat program sesingkat mungkin (diukur dalam byte) yang Anda bisa. Bersenang-senang bermain golf!