... Angka urut (atau angka urut) adalah kata-kata yang mewakili posisi atau peringkat dalam urutan berurutan.
Dari Wikipedia .
Tugas Anda adalah, menggunakan 2 program terpisah (yang dapat dibuat dari 2 bahasa berbeda), untuk menghasilkan urutan urut dari pertama hingga nth
. Anda akan mengeluarkan kata lengkap second
sebagai lawan 2nd
.
Tantangan bilangan ordinal telah diangkat sebelumnya, khususnya dalam entri ini . Dalam tantangan ini, tata cara hanyalah sarana untuk memfasilitasi kondisi unik yang dirinci di bawah ini.
Bagian 1
Anda harus membuat program itu, ketika diberi input n
harus output apa pun .
n
akan selalu menjadi bilangan bulat positif, bukan nol, tidak lebih besar dari 999.
Output yang valid termasuk tetapi tidak terbatas pada :
- Output apa pun ke
stdout
/stderr
/ etc - Pembuatan file / folder / dll
- Antarmuka grafis atau gambar dalam bentuk apa pun
Apapun itu.
Bagian 2
Anda harus membuat program yang menggunakan output dari program bagian 1 untuk menampilkan urutan nomor urut, mulai dari 1 (pertama), hingga apa pun n
yang diuraikan di bagian 1.
Kondisi umum:
- Total byte untuk bagian 2 tidak boleh melebihi total byte untuk bagian 1 (kurang dari atau sama dengan).
Kondisi output:
- Tidak peka huruf besar-kecil.
- Keluaran harus hanya berisi urutan ordinal (hanya karakter aZ) dan spasi putih (baris baru diizinkan).
- Dapat di-output ke sumber apa saja, selama itu terlihat selama atau setelah eksekusi.
- Program tidak perlu berakhir selama outputnya benar.
- Output tidak diperlukan untuk memiliki tata bahasa, tetapi secara opsional dapat memasukkannya (tanda hubung, koma, "ands", dll).
nine hundred ninety ninth
hanya bisa diterimanine hundred and ninety-ninth
.
Output Sampel
Dimana n
8
FIRST SECOND THIRD FOURTH FIFTH SIXTH SEVENTH EIGHTH
Mencetak gol
Hirarki kondisi menang adalah:
- Jumlah byte terendah di bagian 1
- Jumlah byte terendah di bagian 2
Entry #1 | Part 1 = 32 bytes, Part 2 = 22 bytes
Entry #2 | Part 1 = 31 bytes, part 2 = 30 bytes
Entry #2 wins - Part 1 contains 31 bytes vs 32 bytes
---
Entry #1 | Part 1 = 21 bytes, Part 2 = 33 bytes
Entry #2 | Part 1 = 80 bytes, Part 2 = 70 bytes
Entry #2 wins - Entry #1 disqualified (Part 2 contains more bytes than Part 1)
---
Entry #1 | Part 1 = 50 bytes, Part 2 = 49 bytes
Entry #2 | Part 1 = 50 bytes, Part 2 = 50 bytes
Entry #1 wins - Part 1 is equal, Part 2 contains 49 bytes vs 50 bytes
one hundred and eleventh
atauone hundred eleventh
?[30, 'second']
untuk32
kemudian p2 memiliki lebih sedikit pekerjaan untuk melakukan itu jika memiliki output, hanya32
.Jawaban:
Sledgehammer 0.5.1 / Sledgehammer 0.5.1, 10 byte
Program 1 (10 byte):
Dekompresi ke dalam fungsi Bahasa Wolfram ini:
Program 2 (7 byte):
Dekompresi ke dalam fungsi Bahasa Wolfram ini:
Cobalah online!
sumber
R (dengan
english
paket), 16 byte / 16 byteBagian 1, 16 byte
Bagian 2, 16 byte
Membutuhkan
english
paket (yang tidak diinstal pada TIO, sayangnya).english::ordinal(f(22))
outputfirst second third fourth fifth sixth seventh eighth ninth tenth eleventh twelfth thirteenth fourteenth fifteenth sixteenth seventeenth eighteenth nineteenth twentieth twenty first twenty second
.Tentu saja, bagian 1 dapat dibuat lebih pendek (3 byte:)
seq
, tetapi itu akan bertentangan dengan batasan bahwa bagian 2 harus tidak lebih dari bagian 1.sumber
Bahasa Wolfram (Mathematica) (kedua bagian), 18 byte / 15 byte
-5 / -1 terima kasih kepada lirtosiast
Bagian 1, 18 byte
Bagian 2, 15 byte
Cobalah online!
Dua fungsi yang dihasilkan melalui nilai balik.
sumber
Range@#|"Ordinal"&
lebih pendek, dan membuatIntegerName
vektor pada argumen pertama. Saya pikir output yang dipisahkan oleh ruang mungkin diperlukan.Python 3 (bagian 1 & bagian 2)
Sayangnya Nodebox sangat bertele-tele ... tidak ada banyak ruang untuk bermain golf.
Bagian 1 76 byte
Bagian 2 (Menggunakan perpustakaan NodeBox ) 76 byte
sumber
import en.number as n
menghemat empat byte di setiap bagian.JavaScript (Node.js), 47 byte / 47 byte
Dua fungsi di lingkungan Node.js yang sama, dipanggil seperti
g(f(n))
. Menggunakan nomor-ke-kata paket npm .Bagian 1, 47 byte (40 byte + 7 spasi)
Bagian 2, 47 byte
Cobalah di Runkit!
JavaScript (Node.js), 48 byte / 43 byte
Bagian 1, 48 byte
Bagian 2, 43 byte
Cobalah di Runkit!
sumber
Perl 5.10 / Common Lisp, 34/26 bytes
Jadi, Common Lisp
format
memiliki ini sebagai bawaan, karena tentu saja bisa.Program 1 (34 byte)
Perl melakukan semua iterasi. Kode Common Lisp yang setara (
(dotimes(i(read)) ...)
) lebih panjang dari Perl yang lebih golf... for 1..<>
. Perl menghasilkan banyak kode Common Lisp.Program 2 (26 byte)
Ini adalah REPL, minus P. Itu membaca input standar dan, well, jalankan itu. Tidak berakhir, tetapi aturan secara eksplisit mengatakan itu baik-baik saja.
sumber