Ubur-ubur , 12 11 9 byte
\P$'*
i
Penjelasan
Program di atas setara dengan pseudocode fungsional berikut:
\ P $ i '*
map_prefixes(print, reshape(input(), '*'))
The $
(membentuk kembali) menciptakan string N
tanda bintang. \P
membuat fungsi yang mengambil daftar (atau string) dan melewati masing-masing awalannya ke P
(cetak). Karenanya, ini berturut-turut mencetak string 1
ke N
tanda bintang.
Martin Ender
sumber
sumber
([1..n]>>"*")
alih-alihreplicate n'*'
menyimpan byte. Saya juga hanya menghitung 39 byte.f 0=""
dihitung sebagai satu byte, tetapi ditampilkan sebagai dua byte / karakter dalam beberapa editor teks.f x=unlines[[1..n]>>"*"|n<-[1..x]]
.Pyth, 7 Bytes
Merobohkan byte berkat @ETHproduk Coba online
menggunakan Teknik @ PIetu1998
6, byte
sumber
"*"
dengan\*
.j*L\*S
(termasukS
rentang, gandakan masing-masing*L
dengan "*"\*
,j
oin dengan baris baru) Pyth menyisipkan Q implisit pada akhirnya.jm*\*h
juga 6 byte.2sable ,
2411 byteCobalah online!
Dan tidak ada tanda-tanda bintang! Bermain golf mulai 24 hingga 11 berkat @Emigna .
Penjelasan:
sumber
õVYI
tidak memengaruhi kode Anda dengan cara apa pun dan dapat dihapus.1+
sama dengan>
. Jika Anda membuat tanda bintang di loop, Anda juga dapat menghapusUX
. Menggunakan×
alih-alih lingkaran dalam menyimpan lebih banyak byte. Tanpa mengubah metode Anda bisa mendapatkan ini hingga 11 byte atau kurang.Brain-Flak 75 Bytes
Termasuk +3 untuk
-A
Cobalah online!
Penjelasan:
sumber
Dyalog APL , 8 byte
↑
matrify daftar yang terdiri dari'*'
string "*"⍴⍨
dibentuk kembali oleh¨
setiap⍳
bilangan bulat 1 melalui argumen.TryAPL online!
sumber
⌸
bisa satu byte:(,⍕⊢)⌸⍳
7 bytes<sup>SBCS</sup>
.V , 8 byte
Cobalah online!
sumber
Àé
hòlÄ
!<M-@><M-i>*h<M-r>l<M-D>x
(m singkatan dari meta, yang berarti alt). Semua itu adalah mnemonik yang cukup bagus untuk apa yang dilakukan perintah.JavaScript (ES6), 34 byte
sumber
Perl 6 , 23 byte
(Jika output dibolehkan menjadi daftar "baris" tanpa baris baru
.put for
dapat dihapus)Penjelasan:
(Lihat dokumentasi untuk
produce
jika Anda tidak mengerti apa yang[\~] ...
sedang dilakukan)sumber
Perl 5,
2220 byteJalankan dengan
-E
saklar untuk mendapatkansay
.Ditulis sebagai program lengkap akan terlihat seperti ini:
shift
danpop
secara implisit bekerja pada@ARGV
(daftar argumen) di luar subs..
adalah operator jangkauansay
termasuk baris barux
adalah operator untuk mengulang string dan dijelaskan dalam perlopsumber
-E
flag dihitung sebagai 1 byte tambahan.perl -E 'say"*"x$_ for 1..<>' <<< 5
-E
gratis (karena menggantikan-e
yang akan tetap diperlukan). Jika Anda benar-benar ingin mengambil nomor dari baris perintah (mengapa tidak, walaupun<>
1 byte lebih pendek, dan diizinkan), Anda harus menggunakanpop
alih-alihshift
(2 byte lebih pendek)! Bagaimanapun, selamat datang di PPCG, senang melihat Anda bermain golf!Perl, 19 byte
-4 Bytes berkat @Ton Hospel dan pengerjaan ulang solusinya!
Membutuhkan flag
-E
(atau-M5.010
) gratis untuk dijalankan. Mengambil angka dari input:sumber
eval
panjang yang sama denganfor
solusinya (menggunakan<>
bukanpop
) denganeval"s//*/;say;"x<>
J,
118 byteDisimpan 3 byte berkat mil!
Berikut ini adalah dekomposisi:
Sekarang, yang terakhir ini dibaca sebagai "awalan (
]\
) dari string yang terdiri darix
salinan'*'
". Mengamati:Kasus cobaan
Solusi 11 byte yang lebih lama
Ini setara
1 + i.
adalah kisaran[1, x]
. Lalu,'*' #~"0
diterapkan ke rentang ini bentuk (elemen) salinan'*'
.Program bonus:
Ini adalah garpu tertutup yang
#&'*'\
diterapkan pada hasil#&1
input.#&1
memberikan arrayx
yang, dan#&'*'\
bentuk'*'
ke awalan array ini.Uji kasus
sumber
n
salinan'*'
untuk 8 byte menggunakan]\@#&'*'
'*'"0\@i.
Vim,
22, 18 penekanan tombolPenghargaan besar bagi @Udioica karena memberikan jawaban vim yang luar biasa yang saya kembangkan. Jawaban ini tidak mengandung tanda bintang, dengan harapan memenangkan hadiah.
Penjelasan:
Input diketik sebelum sisa program. Udioica datang dengan trik yang luar biasa ini. Mengetik
<n>O <esc>
akan membuat piramida ruang dan satu baris kosong, selama Anda telah:set autoindent
mengaktifkannya. Opsi ini aktif secara default di vim 8 dan neovim, meskipun bukan versi vim yang lebih lama. Karena ini juga membuat garis tambahan, kami gunakanJ
untuk bergabung dengan baris ini dengan yang berikutnya, yang secara efektif hanya menghapus garis di bawah kami.Sekarang pada titik ini, kita perlu mengganti semua ruang ini dengan tanda bintang. Jika saya tidak khawatir tentang menggunakan tanda bintang dalam kode saya, saya hanya akan memilih semuanya secara visual
<C-v>{
dan mengetikr*
, yang menggantikan setiap karakter pilihan dengan tanda bintang. Tetapi saya tidak bisa melakukan itu.Jadi kami membuka halaman bantuan untuk
:h r
. Hal yang menarik tentang ini adalah bahwa di vim-window, halaman ini ditampilkan sebagai:Dengan kursor di 'r' pertama. Namun, file itu sendiri sebenarnya mengandung teks ini:
Cukup nyaman. Jadi kita memindahkan satu karakter dengan
l
, dan menarik teksr*
denganyE
([y] ank ke [E] dan kata ini).Untuk menutup buffer ini, kami menggunakan pintasan untuk menyimpan file
ZZ
. Sekarang, kami secara visual memilih spasi kami, dan menjalankan teks yang ditarik ke atas seolah-olah kami telah mengetiknya dengan melakukan@"
. Ini berfungsi karena "@" menjalankan register berikut sebagai vim-keystrokes, dan "adalah register default untuk mencabut.sumber
C,
47464543 byteMengambil input dari baris perintah
Pada dasarnya jika n bukan 0 recurse pada n-1. di atas rekursi di mana n adalah 0 itu hanya mencetak baris baru, untuk loop berakhir ketika n adalah -1 atau ~ n adalah nol, jika tidak mencetak ASCII 42 yang merupakan '*'. Cobalah di ideone
C ++ 58 Bytes + 19 untuk termasuk iostream adalah 77
sumber
&&
:n?f(n-1):0
→n&&f(n-1)
.Retina , 14 byte
Hitungan byte mengasumsikan penyandian ISO 8859-1.
Cobalah online!
Penjelasan
Ubah input
N
menjadiN
tanda bintang.Ganti setiap tanda bintang dengan semuanya hingga dan termasuk tanda bintang itu (ini adalah
$`$&
) dan linefeed (ini yang¶
).sumber
MATL,
98 byte1 byte disimpan berkat @Luis
Cobalah secara Online
sumber
Cubix , 22 byte
Uji secara online! Menghasilkan baris baru yang tertinggal.
Pada awalnya saya tidak yakin saya bisa memasukkan ini ke dalam 2-kubus, tetapi pada akhirnya itu berhasil:
Saya akan menambahkan penjelasan ketika saya punya waktu, semoga hari ini nanti.
sumber