Anda adalah koki muda berbakat yang baru saja ditawari posisi sous chef di restoran India paling bergengsi di dunia. Anda memiliki sedikit pengalaman dalam menyiapkan masakan India, tetapi Anda bertekad, sehingga Anda ingin membuktikan diri. Anda memutuskan untuk menjadi ahli dosa terkemuka . Untuk melakukan ini, Anda tidak hanya harus menguasai pembuatan Renungan Sepekan, tetapi Anda harus dapat menskala mereka menjadi besar secara sewenang-wenang.
Anda menemukan resep yang menjanjikan untuk dosa adonan:
- 1 gelas nasi
- 1 cangkir ukda chawal
- 1/2 gelas urad dal
- 1/4 cangkir poha
- 1/4 sdt biji methi
- Garam secukupnya
- Air sesuai kebutuhan
Ini akan membuat dosa sekitar 1/2 meter panjangnya.
Tantangan
Tulis program atau fungsi yang akan memberi tahu staf restoran persis apa yang diperlukan untuk membuat satu dosa dari kelipatan bilangan bulat dari resep yang diberikan . Ruang sempit di dapur, jadi Anda ingin kode Anda sesingkat mungkin. Kode terpendek menang, dengan ikatan menuju ke posting sebelumnya.
Sendok dan gelas pengukur datang dalam ukuran standar berikut: 1/4, 1/3, 1/2, 2/3, 3/4, dan 1. Untuk menghindari kemarahan staf dapur, pengukuran harus dilaporkan dalam unit terbesar di yang nomornya dapat ditulis sebagai angka campuran menggunakan ukuran standar saja .
Pengukuran menyebar ke ukuran yang lebih besar per konvensi berikut:
- 3 sdt == 1 sdm
- 4 sdm == 1/4 cangkir
Jadi untuk kelipatan 12, 1/4 sdt biji methi menjadi 1 sdm. Namun, untuk kelipatan 13, menjadi 3 1/4 sdt. Kalau tidak, itu tidak akan diwakili dalam ukuran standar.
Staf menunggu harus mampu membawa dosa ke meja. Untuk memastikan bahwa dosa tidak melanggar dalam perjalanan, Anda memerintahkan mereka untuk membawa dosa dalam tim. Setiap orang dapat membawa paling banyak satu meter dosa. Jadi untuk resep tunggal atau ganda, hanya satu orang yang diperlukan untuk membawanya. Staf menunggu kurang efektif jika mereka dipotong menjadi pecahan, sehingga jumlah pelayan selalu diperlukan.
Memasukkan
Ambil bilangan bulat positif melalui STDIN (atau alternatif terdekat), argumen baris perintah, atau argumen fungsi. Angka ini menentukan faktor penskalaan untuk resep dan bisa sekecil 1 tetapi tidak lebih besar dari 2 32 -1. Itu bisa berupa bilangan bulat apa pun dalam rentang itu.
Keluaran
Cetak ke STDOUT (atau alternatif terdekat) daftar bahan yang diskalakan sesuai dengan input serta jumlah pelayan yang diperlukan untuk membawa dosa. Bahan-bahan harus terdaftar dalam urutan yang diberikan di atas dan dalam format yang diberikan di bawah ini.
Contohnya
Memasukkan:
2
Keluaran:
2 cups rice
2 cups ukda chawal
1 cup urad dal
1/2 cup poha
1/2 tsp methi seeds
Salt to taste
Water as needed
1 waiter
Perhatikan bahwa "cawan" berubah menjadi "cawan" ketika nilainya lebih besar dari 1. "tsp" tidak berubah. "pelayan," seperti "cawan," menjadi jamak.
Memasukkan:
5
Keluaran:
5 cups rice
5 cups ukda chawal
2 1/2 cups urad dal
1 1/4 cups poha
1 1/4 tsp methi seeds
Salt to taste
Water as needed
3 waiters
Nilai non-integer yang lebih besar dari 1 direpresentasikan sebagai angka campuran, yaitu integer yang diikuti oleh pecahan yang dikurangi.
Catatan: Judul berasal dari video yang relevan .
sumber
Jawaban:
CJam, 214 byte
Cobalah online di juru bahasa CJam .
sumber
Javascript (ES6), 443 karakter
Ini sangat menyenangkan untuk bermain golf, tetapi hasilnya jauh lebih lama dari yang saya harapkan.
Cobalah:
Tampilkan cuplikan kode
Ia menerima nilai hingga dan bahkan termasuk
2^32
, atau4294967296
. Setelah itu, 'urad dal' meluap pada angka ganjil dan menjadi negatif.Pada dasarnya, ini menghitung jumlah yang benar saat berjalan. Untungnya, hanya biji methi yang perlu memiliki ukuran tsp / tbsp / cup; jika tidak, ini akan menjadi jauh lebih lama. (Garis benih methi sendiri adalah 155 karakter!)
Ini juga akan memiliki setidaknya 500 karakter di ES5. Saya ❤ ES6.
Seperti biasa, saran sangat dihargai!
Sunting 1: Baru menyadari bahwa sesuai aturan,
1 tsp
harus diganti dengan1/3 tbsp
, sama dengan2 tsp
dan2/3 tbsp
, serta16 tsp
dan1/3 cup
....sumber
-~
jadi,b=-~t/2
jauh lebih pendek, Anda juga dapat mengecualikan kurung-~1
hasil2
, yang bukan hasil yang diinginkan. Alternatif terbaik yang bisa kutemukan,,b=-~((n-1e-9)/2)
sama panjangnya, jadi aku akan tetap seperti itu untuk saat ini.Common Lisp, 435
Sedikit tidak berbulu
Semua tindakan dinyatakan dalam
tsp
. Berdasarkank
fungsinya,g
tentukan unit mana yang akan digunakan untuk mencetak dan panggil fungsi pemformatanh
dengan argumen yang sesuai.k
mengembalikan true ketika argumen dapat dinyatakan sebagai kelipatan 1, 1/4, 1/3, 2/3, 4/3 unitg
mengonversi input sebagai jumlah tbsp dan jumlah tbsp sebagai sejumlah cangkir (seperti yang diberikan dalam pertanyaan). Kami mencoba mencetak berdasarkan unit cangkir terlebih dahulu, atau unit tbsp, atau yang lain dalam tps.h
gunakan arahan pemformatan bersyarat untuk mencetakx
,x y/z
atauy/z
diikuti dengan pemformatans
dengan argumenm
: untuk cangkir,s
adalah"cup~P"
kata-kata yang jamak menurutm
.Contoh (n = 17)
sumber
R,
602603526 byteMasih banyak ruang untuk bermain golf ini, saya curiga, tetapi saya sudah kehabisan waktu dan saya benar-benar ingin melakukan jawaban untuk yang ini.
sumber
1/3 tbsp 1/4 tsp methi seeds
tetapi harus diwakili dalam satu unit umum. Jadi seharusnya1 1/4 tsp methi seeds
(jika matematika mental saya benar).JavaScript (Node.js) , 419 byte
Cobalah online!
sumber