Buat fungsi yang diberi sejumlah garis n
, buat a bigA
.
- Bilah horizontal
bigA
harus berada di baris tengah, atau lebih rendah dari keduanya jikan
genap - Asumsikan font monospace untuk output
Output harus berupa string (atau yang serupa, misalnya array karakter) dengan linebreak yang jelas untuk memecah baris, dan dengan spasi putih yang benar untuk bantalan kiri (Anda dapat mengasumsikan \ t menjadi 4 spasi). Mungkin ada spasi putih di sebelah kanan.
Contohnya
n = 1
A
n = 2
A
AAA
n = 3
A
AAA
A A
n = 4
A
A A
AAAAA
A A
n = 5
A
A A
AAAAA
A A
A A
Ini terinspirasi oleh Buat "H" dari "H" yang lebih kecil
Jawaban:
05AB1E , 13 byte
Kode:
Menggunakan penyandian 05AB1E . Cobalah online!
Penjelasan:
Kanvas
Saya mungkin harus mendokumentasikan kanvas sedikit lebih banyak (dan banyak fungsi lainnya), tetapi ini pada dasarnya meringkasnya. Kanvas memiliki 'mode' yang berbeda berdasarkan jenis parameter yang diberikan. Perintah kanvas memiliki tiga parameter: <length> <string> <direction> .
Karena parameter panjang dan arah adalah daftar, itu 'zip' daftar ini untuk membuat satu set instruksi yang akan dieksekusi. Parameter string hanyalah huruf A , jadi ini adalah karakter isian yang digunakan oleh semua instruksi. Kanvas menafsirkan ini sebagai set instruksi berikut (untuk input 7):
Arahan diterjemahkan dengan cara berikut:
Jika tidak ada keluaran, 05AB1E secara otomatis menampilkan hasil kanvas.
sumber
Arang ,
1715 byteCobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Masukan
n
.Cetak bilah horizontal besar
A
. (Untuk bilangan genap,n+1
toh tumpang tindih dengan sisi kanan.)Pindah ke atas yang besar
A
.Cetak kedua sisi besar
A
.sumber
Python 2 , 80 byte
Cobalah online!
Membagi output yang diinginkan ke dalam spasi putih kiri, spasi
A
ditambah kiri atau tengahA
, dan kananA
. Hitung bagian tengah menggunakan slicing pada string yang tetap. Ini memungkinkan untuk menggunakan cara yang sama untuk menghasilkan baris pertama.sumber
Stax , 15 byte
Jalankan dan debug itu
Dibongkar, tidak diserang, dan dikomentari, programnya terlihat seperti ini.
Jalankan yang ini
sumber
JavaScript (ES6), 77 byte
Kode sumber ini memiliki bentuk persegi panjang ! Oh tunggu ... tantangan yang salah: - /
Cobalah online!
sumber
Python 3.6 , 79 byte atau 73 byte
Menggunakan f-string untuk meluruskan bagian horizontal surat:
Dengan yang
\b
digunakan untuk menghapus satuA
(mungkin curang):sumber
Java (JDK 10) , 124 byte
Cobalah online!
sumber
J , 65 byte
Cobalah online!
Itu bisa dikurangi kira-kira. 12 byte hanya dengan membuat kata kerja diam-diam, tapi saya punya masalah melakukannya.
Penjelasan:
3 : '...'
menunjukkan sebuah kata kerja satu-baris eksplisity
adalah argumennya=/~@i.
menciptakan matriks identitas dengan ukuran argumen([:(}:@|."1,.])
menambahkan matriks identitas dengan salinan cerminnya dengan elemen terakhir dari setiap baris yang dijatuhkan.1(...)}(...)
berubah menjadi 1 posisi dalam argumen kanannya, dipilih oleh yang kiri([:(<@;]+i.@+:)<.@-:)
- menyiapkan seleksi dengan melakukan hal berikut:' A'{~
membuat spasi di tempat 0 dan 'A' di mana ada 1sumber
Kanvas ,
1713 byteCoba di sini!
-4 bytes terima kasih ke dzaima !
sumber
Ruby , 66 byte
Cobalah online!
Kembali sebagai array garis
sumber
SOGL V0.12 , 12 byte
Coba Di Sini!
Penjelasan:
sumber
Japt
-R
,2019 byteCobalah
Penjelasan
Alternatif
(Dengan harapan hal itu dapat membantu saya menemukan penghematan!)
sumber
ç h'AUz)¬íp ®i'A êÃû
p
dengan²
dan juga 19 byteRuby , 73 byte
Cobalah online!
sumber
Jelly ,
23201918 byteCobalah online!
=þ`
menciptakan matriks ukuran identitasn
.L‘HĊƲ
menemukan indeks baris bilah horizontal dengan¦
memilih baris itu dan menerapkannyao\
yang membuat bilah.U
membalikkan setiap baris sehingga kita tidak memiliki terbalik "A" danŒB
(palindromize; vectorizes) membuat paruh kedua "A".ị⁾A
(dengan spasi yang dipangkas dalam format) menggantikan0
s dengan spasi dan1
s denganA
s.sumber
T-SQL ,
182177 byteVersi pertama (dengan 182 byte):
Versi di atas berfungsi hingga @ n = 9.
Ini adalah versi lain, yang berfungsi hingga @ n = 23, tetapi memiliki 2 byte tambahan:
Tidak Terkumpul:
sumber
Haskell ,
989795 byte dan 109 byteDua pendekatan yang sangat berbeda. Pertama (95 byte):
dan kedua (109 byte):
Coba di sini!;Coba versi modifikasi di sini!Coba versi ketiga di sini!
sumber
l
sebagai operator infiks .m True='A'
disingkat menjadim b|b='A'
.Python 2 , 70 byte atau 65 byte
Daftar string adalah hasil yang dapat diterima, seperti yang dikatakan @Budd dalam komentar.
Cobalah online!
Solusi yang tampaknya curang, menggunakan
\b
. Itu terlihat funky di TIO, di konsol itu melakukan pekerjaan.Cobalah online!
sumber
Javascript, 124 byte
Solusi yang cukup naif, mencobanya untuk melatih keterampilan js.
for(i=-1,p=" ".repeat(n-1)+"A ";++i<n;console.log(i-~~(n/2)?p:p.slice(0,i)+"A".repeat(n)),p=p.slice(1,n)+" "+p.slice(n-1)){}
Dibongkar
sumber
Perl 5
-n
, 57 byteCobalah online!
sumber
Python 3 ,
93, 88 byteCobalah online!
-3 oleh @ovs menggunakan f-string
sumber