Monday Mini-Golf: Serangkaian tantangan kode-golf pendek , diposting (semoga!) Setiap hari Senin.
Maaf sudah terlambat; Saya menyadari 90% dari cara menulis ide yang berbeda bahwa itu adalah duplikat.
Keluarga saya agak besar, jadi kami makan banyak makanan. Kita biasanya perlu menggandakan, membuat tiga, atau bahkan empat kali lipat resep untuk membuat makanan yang cukup! Tetapi karena mengalikan ukuran bisa menyebalkan, alangkah baiknya memiliki program untuk melakukan ini bagi kita.
Tantangan
Tantangan Anda adalah membuat program atau fungsi yang menggunakan pengukuran sebagai angka N dan huruf L , dan mengembalikan pengukuran yang sama, disederhanakan sebanyak mungkin. Inilah unit pengukuran yang diperlukan (semua orang Amerika, seperti keluarga saya), dan surat-surat yang sesuai:
1 cup (c) = 16 tablespoons (T) = 48 teaspoons (t)
1 pound (l) = 16 ounces (o)
1 gallon (g) = 4 quarts (q) = 8 pints (p) = 128 fluid ounces (f)
"disederhanakan sebanyak mungkin" berarti:
- Menggunakan unit pengukuran terbesar mungkin. Setiap unit dapat memiliki sisa 1/4, 1/3, 1/2, 2/3, atau 3/4.
- Mengubah hasilnya menjadi angka campuran, jika perlu.
Misalnya, 4 o
adalah empat ons, yang menjadi 1/4 l
, seperempat pon. 8 t
, 8 sendok teh, menjadi 2 2/3 T
.
Detail
- Masukan dapat diambil dalam format apa pun yang wajar; sama dengan output. (
1 t
,1,"t"
,1\nt
, Dll) - Pastikan setiap bagian pecahan ditangani dengan benar. (
11/4
di tempat1 1/4
tidak diizinkan.) - Jumlah tersebut akan selalu menjadi nomor campuran, dan akan selalu memiliki penyebut
2
,3
atau4
(atau tidak). (tidak1 1/8 T
, tidak1.5 T
, dll.) - Sebagai hasil dari hal di atas, tidak ada konversi ke bawah (misalnya cangkir ke sendok makan) yang pernah diperlukan.
- Surat itu akan selalu menjadi salah satu surat yang tercantum di atas (
Tcfglopqt
).
Kasus uji
Berikut daftar besar, semoga mencakup semua jenis kasus:
Input | Output
--------+--------
1/2 t | 1/2 t
3/4 t | 1/4 T
1 t | 1/3 T
1 1/2 t | 1/2 T
2 t | 2/3 T
2 1/4 t | 3/4 T
2 1/2 t | 2 1/2 t
3 t | 1 T
10 t | 3 1/3 T
16 t | 1/3 c
5 1/3 T | 1/3 c
8 T | 1/2 c
16 T | 1 c
36 T | 2 1/4 c
1/4 c | 1/4 c
1024 c | 1024 c
1 o | 1 o
4 o | 1/4 l
5 1/3 o | 1/3 l
5 2/3 o | 5 2/3 o
8 o | 1/2 l
28 o | 1 3/4 l
28 l | 28 l
2 f | 2 f
4 f | 1/4 p
8 f | 1/4 q
16 f | 1/2 q
32 f | 1/4 g
64 f | 1/2 g
128 f | 1 g
2/3 p | 1/3 q
1 1/3 p | 2/3 q
2 p | 1/4 g
1 q | 1/4 g
Mencetak gol
Dapur kami sangat kecil, sehingga kodenya harus sesingkat mungkin, agar tidak membuat dapur lebih sempit. Kode valid terpendek dalam byte menang; tiebreak pergi ke pengiriman yang mencapai jumlah byte terakhirnya terlebih dahulu. Pemenang akan dipilih Senin depan, 9 November. Semoga beruntung!
Harap dicatat bahwa tantangan ini mirip dengan, tetapi bukan duplikat dari, World Big Dosa .