Tugas
Diberi dua bilangan bulat positif:
- Gambar persegi panjang dengan dimensi yang ditentukan oleh dua bilangan bulat.
- Ulangi Langkah 3 hingga tidak ada lagi ruang.
- Gambar dan isi kotak terbesar yang menyentuh tiga sisi persegi panjang (yang tersisa).
- Keluarkan persegi panjang yang dihasilkan.
Contoh
Misalnya, input kami adalah 6
dan10
.
Kami menggambar persegi panjang berongga ukuran 6 x 10:
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
Setelah berulang kali mengisi kotak, inilah yang akan kita dapatkan:
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaaccdd
aaaaaaccdd
Ada 4 kotak di sini ( a
, b
, c
, d
), masing-masing dengan panjang sisi 6
, 4
, 2
,2
masing-masing.
Aturan dan kebebasan
- Anda harus menggunakan huruf berbeda untuk setiap kotak.
- Anda dapat memilih huruf mana yang akan didukung, selama huruf yang didukung semua karakter yang dapat dicetak dan setidaknya ada
10
karakter yang didukung. - Di setiap iterasi dari Langkah 3 di atas, Anda memiliki dua pilihan (kecuali dalam iterasi terakhir, di mana Anda hanya memiliki satu pilihan). Kedua pilihan itu valid.
- Jumlah kotak yang diperlukan tidak akan melebihi jumlah huruf yang Anda dukung.
- Anda dapat mengisi kotak dengan huruf yang Anda dukung dalam urutan apa pun .
Testcases
Memasukkan: 6, 10
Keluaran:
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaaccdd
aaaaaaccdd
atau
aaaaaaccdd
aaaaaaccdd
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
atau
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
ccddaaaaaa
ccddaaaaaa
atau
ccddaaaaaa
ccddaaaaaa
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
atau
ddddddaaaa
ddddddaaaa
ddddddaaaa
ddddddaaaa
ddddddbbcc
ddddddbbcc
Memasukkan: 1,1
Keluaran:
a
Memasukkan: 1,10
Keluaran:
abcdefghij
Memasukkan: 10,1
Keluaran:
a
b
c
d
e
f
g
h
i
j
Perhatikan bahwa ada lebih banyak kemungkinan daripada yang bisa saya sertakan untuk testcases di atas.
Mencetak gol
Ini adalah kode-golf . Jawaban terpendek dalam byte menang.
Celah standar berlaku.
code-golf
ascii-art
arithmetic
Biarawati Bocor
sumber
sumber
Jawaban:
Arang , 30 byte
Cobalah online! Penjelasan:
Perintah Oblong Annoyingly Charcoal tidak akan mengambil
0
untuk dimensi, yang biaya saya 4 byte. Pendekatan lain adalah loop sementarag * d
, tapi kemudian saya tidak bisa mencari cara untuk mengulanginyab
(yang sudah ditentukan untuk huruf kecil).sumber
W×γδ
, bagaimana saya mencetak huruf yang berbeda setiap kali?)Pyth , 34 byte
Cobalah online!
sumber
Haskell , 90 byte
Cobalah online!
sumber
Jelly , 32 byte
Cobalah online!
Ṁ,ạ/y
Anda ingin penjelasan? Ini dia.Saya mungkin bisa bermain golf sedikit lebih banyak dengan menggunakan argumen implisit sebagai gantinya
³,⁴
.sumber
Haskell , 181 byte
Cobalah online!
Untuk
10
byte lebih banyak Anda mendapatkan spiral yang bagus, bukan :)Cobalah online!
Tidak disatukan
The
(#)
menempatkan Operator dua matriks samping satu sama lain, tetapi transposes yang tepat, misalnya:Ini pada dasarnya adalah versi rekursif dari algoritma Euclid, tetapi alih-alih melupakan pembagi & sisa dan mengembalikannya
gcd
, ia membangun kuadrat darinya dan mengakumulasikannya dengan(#)
. Thes
variabel adalah karakter yang tersisa yang bisa kita gunakan:Fungsi sebenarnya hanya memanggil fungsi dari atas dengan serangkaian semua karakter yang dapat dicetak:
sumber
import Data.List
untuk menggunakantranspose
.164
..