Sebuah octothorpe, (juga disebut tanda nomor, hash atau hashtag, atau tanda pound) adalah karakter ASCII berikut:
#
Bukankah itu bentuk yang menyenangkan? Mari kita buat versi yang lebih besar! Jadi inilah tantangan Anda:
Mengingat positif bilangan bulat N , keluaran sebuah hashtag ASCII ukuran N .
Misalnya, tagar ASCII ukuran 1 terlihat seperti ini:
# #
#####
# #
#####
# #
Trailing whitespace pada setiap baris diperbolehkan, tetapi tidak diperlukan.
Input akan selalu berupa bilangan bulat positif yang valid, sehingga Anda tidak harus menangani non-angka, negatif, atau 0. Output Anda dapat dalam format yang masuk akal, jadi mengeluarkan ke STDOUT, mengembalikan daftar string, atau string dengan baris baru, matriks 2D karakter, menulis ke file, dll. semuanya baik-baik saja.
Uji kasus
2:
## ##
## ##
##########
##########
## ##
## ##
##########
##########
## ##
## ##
3:
### ###
### ###
### ###
###############
###############
###############
### ###
### ###
### ###
###############
###############
###############
### ###
### ###
### ###
4:
#### ####
#### ####
#### ####
#### ####
####################
####################
####################
####################
#### ####
#### ####
#### ####
#### ####
####################
####################
####################
####################
#### ####
#### ####
#### ####
#### ####
5:
##### #####
##### #####
##### #####
##### #####
##### #####
#########################
#########################
#########################
#########################
#########################
##### #####
##### #####
##### #####
##### #####
##### #####
#########################
#########################
#########################
#########################
#########################
##### #####
##### #####
##### #####
##### #####
##### #####
Karena ini adalah kode-golf, cobalah menulis solusi sesingkat mungkin yang Anda bisa, dan yang terpenting, bersenang-senang!
Jawaban:
MATL ,
20161211 byte3 byte berkat DJMcMayhem.
Terima kasih 1 byte untuk Luis Mendo.
Cobalah online!
Penjelasan
sumber
Zc
sebagai gantinya35*c
dan~
(TIDAK logis) alih-alih0=
Q
alih - alih2<
!t*
ke&*
. Yang terakhir berarti "perkalian satu-input", yang mengalikan (unsur-bijaksana) input dengan transposnyaBrain-Flak , 420 byte
Cobalah online!
Tidak, skor 420 tidak disengaja. Saya berjanji. Versi yang dapat dibaca:
sumber
6502 kode mesin (C64),
5956 byteDemo online
Penggunaan: dengan
SYS49152,N
N adalah angka antara 1 dan 255.(nilai lebih besar dari 4 sudah akan terlalu besar untuk layar C64, mulai dari 8, hasilnya bahkan terlalu lebar)
Penjelasan :
sumber
Haskell , 43 byte
Cobalah online!
Menghasilkan daftar string.
sumber
Python 2 , 55 byte
Cobalah online!
Ini mengembalikan daftar karakter 2D.
Python 2 , 65 byte
Cobalah online!
Python 2 , 66 byte
Cobalah online!
sumber
f(i);
menyimpan hasilnya dalam temp sementara danprint
mengaksesnya.f(i)
cetakan danprint
dalam Python 2 menambahkan baris baru: PArang , 21 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Saya awalnya mencoba pendekatan bitmap yang lucu:
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan: Bekerja dengan mempertimbangkan
#
sebagai array 5 × 5 kotak. Kotak yang berada di baris atau kolom ganjil perlu diisi.sumber
J, 22 byte
Cobalah online!
Banyak kemiripan dengan jawaban J yang lain, meskipun saya tidak mengerti kereta dengan banyak kata benda, jadi jawaban saya memiliki tiga byte potensial untuk dipotong (dua paren dan refleksif-
~
).Penjelasan
Menghasilkan octothorpe
Octothorpe dibuat oleh segala sesuatu dalam tanda kurung, direproduksi di bawah ini untuk kenyamanan.
Banyak cara saya membuat octothorpe menyalahgunakan cara yang dipakai J array ketika mereka tidak cukup lama.
21,0
cukup menciptakan array21 0
.5$
membentuk ulang bahwa array ke array 5-atom:21 0 21 0 21
.#:
mengubah setiap atom menjadi angka biner. Karena#:
beroperasi pada setiap atom, outputnya adalah sebuah matriks. Masing21
- masing digantikan oleh1 0 1 0 1
seperti yang diharapkan, tetapi masing0
- masing digantikan oleh0 0 0 0 0
! Ini karena J pads array tidak cukup panjang untuk mencocokkan bentuk 2D array yang dihasilkan yang terpaksa5 5
karena1 0 1 0 1
baris. Untungnya, untuk angka-angka itu cocok dengan0
, jadi kami mendapatkan matriks yang dihasilkan'# '{~
mengkonversi masing1
- masing ke spasi dan0
ke#
.{
berarti "mengambil" dan~
berarti "mengganti argumen diad, jadi J melihat ke setiap elemen dalam matriks sebagai indeks untuk string yang'# '
berarti masing-masing0
menjadi elemen nol,#
dan masing-masing1
menjadi elemen pertama, spasi. Ini menghasilkan ukuran satu octothorpe.Mengubah ukuran octothorpe
Ini hanyalah masalah
n
waktu menyalin sepanjang setiap sumbu, selesai menggunakanyang pertama
#
(yang merupakan bagian dari kail) dan#~"1]
.#
salinan di sepanjang sumbu horizontal dan#"1
salinan di sepanjang sumbu vertikal.sumber
##"1&('# '{~#:5$21,0)
menghemat satu byte.CJam,
272625 byteCobalah online!
Fakta menyenangkan: Ini awalnya dimulai pada 29 byte, dan byte telah dihapus satu per satu sejak itu, bergantian antara mode blok dan program penuh.
Penjelasan:
sumber
Sekam ,
1210 byteCobalah online! Perhatikan ruang trailing.
Penjelasan
sumber
J ,
2319 byteDisimpan 4 byte berkat @LeakyNun.
Cobalah online!
Penjelasan
sumber
[:|:f
bisa0|:f
' # '{~]#"1]#+./~@i:@2
menghemat satu bytef=:' #'{~1=]+./~@#i:@2
Jelly ,
141311 byteDisimpan 2 byte berkat @JonathanAllen
Tautan monadik mengembalikan daftar garis. Perhatikan ruang trailing.
Cobalah online!
Bagaimana itu bekerja
sumber
µ
(atau⁸
Anda bisa memiliki di sana sebagai gantinya) ...5ẋ€Ẏ&þ`ị⁾ #
5Ḷẋ€
harusµ
, tetapi tidak5ẋ€
?Ẏ
bertindakn
dan kemudian menyerahkannya ke kananẋ€
, karena dengan rantai terkemuka angka dua-angka yang disebut monadically itu tidak perlu. Saya tidak begitu yakin, bagaimana`
bisa menempatkan 5 (atau mungkin daftar panjang itu) di sebelah kanan tabel&
.Bahasa Game Maker,
138108 byteDimaksudkan sebagai skrip (nama Pembuat Game untuk fungsi yang ditentukan pengguna), dengan demikian
n=argument0
danreturn s
. 20 byte dapat dicukur dengan mengambiln
langsung dari instance saat ini dan menggunakans
hasilnya. (Contohnya mendapatkan variabel-variabel ini karena mereka tidak dideklarasikan denganvar
).Waspadalah tentu saja yang
#
digunakan oleh hal-hal grafis Game Maker sebagai karakter baris baru alternatif, jadi Anda mungkin ingin awalan dengan\
jika Anda ingin menampilkan ke layar;)Perhatikan juga bahwa saya menggunakan GML versi Game Maker 8.0 di sini; versi GML modern mungkin memiliki fitur yang dapat menghemat byte tambahan.
Beberapa ide milik teman wareya dan chordbug.
sumber
Perl 5 , 49 + 1 (-p) = 50 byte
Cobalah online!
Bagaimana?
Secara implisit menyimpan input dalam $ _ melalui
-p
flag. Mulailah dengan garis paling atas yang mungkin paling mendasar" # # "
dengan garis belakangnya yang baru. Gandakan setiap karakter tersebut dengan nomor input. Kemudian ulangi dengan nomor input untuk membentuk bagian atas octothorpe, simpan semua itu kembali dalam $ . Kemudian tambahkan baris dengan semua karakter diganti dengan '#' kali jumlah input. Kemudian tambahkan bagian atas. Lakukan dua kalimat terakhir total dua kali. Output $ adalah tersirat dalam-p
flag.sumber
05AB1E ,
252221 byteCobalah online!
-1 karena Emigna membenci transliterate dan, untungnya, mengingatkan saya bahwa saya juga harus: P.
Harus menjadi cara yang lebih baik daripada menggigitnya ... Masih berfungsi.
sumber
5ôεS„# èJ¹F=
menghemat satu byte.JavaScript (ES6), 79 byte
Port pendekatan bitmap yang saya gunakan untuk upaya Charcoal asli saya.
sumber
Python 2 ,
124,116,113,112,98,9666 byteBaru (Kredit: HyperNeutrino):
Tua:
Cobalah online!
Jelas bukan solusi terpendek, tapi saya pikir itu layak. Umpan balik apa pun akan dihargai!
sumber
a,b,c=input()," #"
harus menyimpan beberapa byte.a,b,c=input(),"#"," "
? Yang tidak lebih pendek ... Saya menghargai bantuannya!a,b="# "
berhasil.a=input();b,c="# "
akan bekerja dan menyimpan byte(i==2)
dan menambahkan spasi di awal.Brain-Flak ,
338332 byte6 byte terima kasih kepada Riley.
Cobalah online!
Lebih banyak versi "dapat dibaca"
Cobalah online!
sumber
(({})<>)(())<>({}<>)
di awal bisa diganti dengan(({}<>)<(())>)
SOGL (SOGLOnline commit 2940dbe) , 15 byte
Untuk menjalankan ini, unduh ini dan jalankan kode dalam
index.html
file.Menggunakan bahwa pada saat itu komit (dan sebelum itu)
*
mengulangi setiap karakter, bukan seluruh string.Penjelasan:
Bonus: tambahkan 2 input untuk panjang X dan Y yang terpisah!
sumber
ø─Ζ┘Χ⁴‘
mendorong itu?#
dan data dasar-2 yang diperlukan untuk string itu.brainfuck , 224 byte
Cobalah online!
Pembuatan
Saya mencoba membuat kode ini dengan tangan dan menghabiskan beberapa jam, jadi saya memutuskan untuk membuat transpiler dengan Python.
Berikut adalah kode yang saya masukkan untuk membuat kode ini:
Cobalah online!
sumber
C (gcc) ,
9893 byte5 byte berkat Felix Palmen.
Cobalah online!
sumber
Gaia , 9 byte
Cukup banyak jawaban Zgarb yang luar biasa
Cobalah online! (footer hanya untuk mencetak cantik, program itu sendiri mengembalikan daftar karakter 2D)
Penjelasan
sumber
Befunge ,
105103 byteCobalah online!
sumber
Python,
888477 byteCobalah online!
Mengembalikan daftar karakter 2D.
sumber
PowerShell ,
72686360 byteCobalah online!
Mengambil input
$a
. Kemudian, kami melakukan banyak stringsihirdan manipulasi array.Anda dapat mengupas bagian-bagian dari penjelasan mulai dari bawah untuk melihat bagaimana output dibangun, jadi semoga penjelasan saya masuk akal.
sumber
Haskell, 72 byte
Mengembalikan daftar string. Cobalah online!
Bagaimana itu bekerja:
sumber
Mathematica, 63 byte
Penjelasan
(1)
-##
mem-parsing keTimes[-1, ##]
sumber
ArrayFlatten
sangat baik.Python 2, 113 byte
Sebagai array string:
Sebagai seni ASCII:
Python 3, 115 byte
Python 3, 117 byte
Sebagai array booleansPython 2, 75 byte
sumber
Java 8, 103 byte
Lambda menerima
Integer
dan mencetak octothorpe dengan standar keluar. Diputar keConsumer<Integer>
.Cobalah secara Online
Lambda yang tidak tersentuh
Pengamatan kunci di sini adalah bahwa, pada 5 oleh 5 grid n oleh n sel, octothorpes muncul di mana pun baris atau kolom nomor (0-based) aneh. Saya cukup yakin ini adalah pendekatan umum termurah, tetapi tampaknya golf lebih lanjut.
Ucapan Terima Kasih
sumber
int s=5*n,x=0,y
for-loop sebagai gantinya untuk menyimpan byte pada titik koma.Pyth ,
2822 byte-6 byte terima kasih kepada @LeakyNun
Test Suite.
sumber
R ,
878562 byte2 byte disimpan dengan mewakili c (F, T) sebagai! 1: 0, terima kasih kepada LeakyNun
23 byte disimpan berkat Giuseppe
Cobalah online!
Penjelasan (ungolfed):
sumber