Diberikan bilangan bulat positif <100 (dari 1 hingga 99, termasuk 1 dan 99), menghasilkan banyak loker.
Loker didefinisikan sebagai berikut:
+----+
| |
| |
| |
| nn |
+----+
di mana nn
nomor pengunci, dalam basis 10. Jika ada nomor 1-digit, itu dinyatakan dengan 0 di depannya. Misalnya, nomor loker 2 menampilkan nomor tersebut 02
.
Loker dapat ditumpuk, tetapi hanya hingga 2 tinggi:
+----+
| |
| |
| |
| on |
+----+
| |
| |
| |
| en |
+----+
on
menunjukkan angka ganjil, en
angka genap. Loker juga dapat diletakkan di samping satu sama lain.
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+----+
| | | |
| | | |
| | | |
| 02 | 04 | 05 |
+----+----+----+
Perhatikan bahwa loker nomor 5 adalah loker bernomor ganjil yang ada di bagian bawah. Ini karena ketika Anda memiliki input bernomor ganjil, loker terakhir harus diletakkan di lantai (karena loker yang melayang terlalu mahal). Karena itu, contoh di atas adalah output yang diharapkan untuk n = 5. n = 0 harus mengembalikan apa-apa.
Aturan: Metode standar input / output. Input dalam format apa pun yang nyaman, output sebagai string. Celah standar berlaku.
Kasus uji:
Input
Output
---------------------
1
+----+
| |
| |
| |
| 01 |
+----+
--------------------- (newlines optional in case 1)
4
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+
| | |
| | |
| | |
| 02 | 04 |
+----+----+
---------------------
5
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+----+
| | | |
| | | |
| | | |
| 02 | 04 | 05 |
+----+----+----+
---------------------
16
+----+----+----+----+----+----+----+----+
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| 01 | 03 | 05 | 07 | 09 | 11 | 13 | 15 |
+----+----+----+----+----+----+----+----+
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| 02 | 04 | 06 | 08 | 10 | 12 | 14 | 16 |
+----+----+----+----+----+----+----+----+
Ini kode-golf , jadi kode terpendek menang!
1
ini harus dikeluarkan?Jawaban:
Pyth , 66 byte
Suite uji.
sumber
Python 2,
201191185175171166164163 byteCobalah secara Online!
sumber
PHP, 191 Bytes
Cobalah online!
PHP, 235 Bytes
Kasus 1 dengan baris baru opsional
Cobalah online!
Diperluas
PHP, 300 Bytes
ganti
["","",""]
dengan["\n","\n","\n"]
jika Anda ingin baris baru untuk kasus1
Cobalah online!
sumber
Ruby,
256239201191183 byteIni sangat panjang. Saya akan bekerja lebih banyak golf.
sumber
C (gcc) ,
426335300294282252249246244237 byteIni benar-benar perlu diturunkan
Cobalah online!
sumber
-~n/2
alih-alihn/2+n%2
Batch, 305 byte
+----+
dan| |
keduanya mirip dengan+ +
di mana mereka dapat dihasilkan melalui substitusi tunggal, dan ternyata sedikit lebih pendek daripada menghasilkan mereka secara terpisah (kutipan tambahan yang diperlukan untuk|
s tidak membantu).sumber
Pyth -
9774868075 byteCoba di sini
sumber
JavaScript ES6, 224 byte
Menggunakan beberapa ide dari jawaban Python junkie matematika
Cuplikan Tes
Dibersihkan
sumber
Arang , 37 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Masukkan jumlah loker ke dalam
q
.Loop atas loker dari
1
keq
inklusif.Hitung arah ke loker berikutnya, dan ulangi itu 5 kali (golfier daripada menggunakan gerakan lompat).
Gambar loker, mulai dari sudut kiri bawah. (Pojok kanan bawah juga membutuhkan 4 byte sedangkan pojok kanan atas mengambil 5. Pojok kiri atas hanya membutuhkan 3 byte tetapi kemudian nomor loker akan membutuhkan waktu lebih lama untuk menggambar.)
Gambarkan nol di depan dari nomor loker, jika perlu.
Tarik nomor loker terbalik dan kanan-ke-kiri, secara efektif membenarkannya.
Pindah kembali ke sudut kiri bawah siap untuk menghitung arah ke loker berikutnya.
Sunting: Versi Charcoal nanti mendukung solusi 32-byte ini:
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Ambil angka dari
1
ke nomor input inklusif berpasangan. (Jika nomor input ganjil, array terakhir hanya akan memiliki satu elemen.)Ulangi setiap pasangan dalam urutan terbalik.
Gambarkan nol di depan dari nomor loker, jika perlu.
Tarik nomor loker terbalik dan kanan-ke-kiri, secara efektif membenarkannya.
Pindah ke kiri atas loker dan gambarkan. Ini juga merupakan kiri bawah dari loker berikutnya, jadi kami siap untuk menggambar loker kedua dari pasangan jika berlaku.
Pindah ke sepasang loker berikutnya. (Ini harus sebelum loop dalam untuk menghemat 1 byte tetapi Charcoal menghasilkan output yang salah untuk input 1 karena beberapa alasan.)
sumber