Tantangan
Tugas Anda adalah membuat program atau fungsi yang menampilkan yang berikut tanpa input:
a
bb
ccc
dddd
eeeee
ffffff
ggggggg
hhhhhhhh
iiiiiiiii
jjjjjjjjjj
kkkkkkkkkkk
llllllllllll
mmmmmmmmmmmmm
nnnnnnnnnnnnnn
ooooooooooooooo
pppppppppppppppp
qqqqqqqqqqqqqqqqq
rrrrrrrrrrrrrrrrrr
sssssssssssssssssss
tttttttttttttttttttt
uuuuuuuuuuuuuuuuuuuuu
vvvvvvvvvvvvvvvvvvvvvv
wwwwwwwwwwwwwwwwwwwwwww
xxxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyyyyy
zzzzzzzzzzzzzzzzzzzzzzzzzz
Mencetak gol
Ini adalah kode-golf , jadi jawaban tersingkat di setiap bahasa menang.
code-golf
string
kolmogorov-complexity
alphabet
SpookyGengar
sumber
sumber
Jawaban:
05AB1E , 2 byte
Cobalah online!
Perhatikan bahwa output ini sebagai daftar garis, sebagaimana OP secara eksplisit diizinkan. Tautan menggunakan versi dengan cetak cantik (bergabung dengan baris baru).
Bagaimana itu bekerja
A
menghasilkan alfabet huruf kecil.ƶ
mengangkat alfabet (mengalikan setiap elemen dengan indeksnya).»
bergabung dengan baris baru.sumber
Python 2 , 36 byte
Cobalah online!
sumber
APL (Dyalog) ,
1285 byte SBCS3 byte disimpan berkat @ngn
4 byte disimpan berkat @ Adám
OP huruf besar yang diklarifikasi adalah valid, serta output sebagai array string.
Cobalah online!
Bagaimana?
⌸
memberi kita setiap huruf dalam⎕A
lphabet dengan indeks-nya di dalamnya, diserahkan ke fungsi⍴⍨
dengan huruf sebagai argumen kiri dan indeksessebagai argumen yang tepat.⍴⍨
resha ⍴ es argumen kanan dengan panjang yang disediakan oleh yang kirinya.⍨
beralih ke kiri dan kanan (karena itu simbolnya, tampak seperti wajah seseorang yang membaca penjelasan ini).sumber
819⌶↑⎕A⍴¨⍨⍳26
↑
.Haskell , 27 byte
Cobalah online! Mengembalikan daftar garis. (Terima kasih kepada @totallyhuman untuk menunjukkan bahwa ini sekarang diperbolehkan)
Penjelasan:
sumber
<$
mengulangi argumen pertamanya n kali, di mana n adalah panjang argumen kedua?brainfuck , 74 byte
Cobalah online!
Penjelasan
Cobalah online!
sumber
Befunge-98 (FBBI) , 27 byte
di mana
karakter substitusi (ASCII 26)
Cobalah online!
Menggunakan huruf besar, dan memiliki baris tambahan.
Penjelasan
Kode berfungsi dengan menyimpan penghitung (awalnya 0), dan pada setiap loop:
1+
- Menambahnya dengan 1:0\::
- Mendorong sesuatu sehingga tumpukan terlihat seperti ini:bottom [N, 0, N, N, N] top
'`j'@
- Cek apakah penghitung lebih besar dari 26j'@
- Jika ya, kita melompati'
dan keluar menggunakan@
j'@
- Jika tidak, kami menjalankan'
, yang mendorong nilai ASCII@
ke stackSekarang tumpukan terlihat seperti ini:
bottom [N, 0, N, N, 64] top
+\
- Tambah, lalu alihkan 2 teratas:bottom [N, 0, (N+64), N] top
Pertama kali lewat, ini adalah ASCII 65, atauA
k:
- Gandakan yang kedua dari waktu teratas(N+1)
- sekarang ada(N+2)
nilai(N+64)
pada stack (ditambahN
dan0
dari sebelumnya)$$
- Buang nilai 2 teratas - sekarang hanya adaN
nilai(N+64)
>:#,_
- Mencetak setiap nilai teratas hingga0
- ini berartiN
salinan(N+64)
cetak$
- Membuang0
- Sekarang tumpukan itu adilN
a,
- Mencetak enterDan itu berulang
Saya suka bagaimana saya menggunakan
@
keduanya untuk mengakhiri program dan untuk menambah penghitung.sumber
Ruby ,
3230 byte-2 byte terima kasih kepada @EricDuminil.
Cobalah online!
sumber
27.times{|n|puts (n+96).chr*n}
akan benar dengan 30 byteJavaScript (ES6), 54 byte
sumber
Excel VBA, 38 byte
Menggunakan Jendela Segera. :)
sumber
"
BASH,
59 5440 byteCobalah online!
Terima kasih. 5 byte ke @Justin Mariner
sumber
for
loop dapat golfed bawah menggunakan tip ini untuk 54 byte: Cobalah secara online!Ruby, 38 byte
Mengembalikan Array string
-5 Bytes terima kasih untuk benar-benar manusia
* -11 byte berkat beberapa golf yang sangat baik dari Jordan.
sumber
"\n"
sama sekali;puts
apakah itu untuk Anda (meskipun untuk referensi di masa depan$/
adalah 2 byte lebih pendek) —tetapi Anda dapat menyingkirkanputs
seluruhnya jika Anda menjadikan ini lambda yang baru saja mengembalikan array baris. Anda juga dapat mengubaha=[*?a..?z];puts a.map
keputs (a=*?a..?z).map
danx*(a.index(x)+1)
kex*-~a.index(x)
. Secara keseluruhan itu 38 byte .(a=*?a..?z)
ada di dalam blok, bukan bagian argumen dari lambda.V , 9 byte
Cobalah online!
Hexdump:
sumber
MATL , 9 byte
Cobalah online!
Penjelasan
sumber
&
tidak dapat digunakan untuk menggandakan dan memindahkan2Y2
?&
tidak benar-benar menggandakan dan memindahkan, meskipun terkadang menghasilkan hasil yang sama seperti itu. Apa yang dilakukannya adalah memodifikasi jumlah input / output dari fungsi selanjutnya. Misalnya, jika Anda menggunakan&+
,+
fungsi sekarang mengambil satu input, bukan dua, dan output jumlah input dengan dirinya sendiri ditransformasikan. Tapi itu hanya karena itulah cara+
kerja dengan 1 input (sama untuk=
,>
dan beberapa lainnya)Python 3 , 37 byte
Mencetak baris baru terkemuka (yang diizinkan).
Cobalah online!
sumber
Jelly ,
54 bytepenyalahgunaan implementasi Python licik
-1 byte terima kasih kepada Adám (mengeluarkan daftar baris telah diizinkan; seperti, sekarang, telah menulis fungsi daripada program)
Tautan niladik yang mengembalikan daftar string, garis
(untuk mencetaknya dengan baris baru sebagai program lengkap, tambahkan
Y
kembali ).Cobalah online! (footer memanggil tautan sebagai nilad (
¢
) dan mendapatkan representasi Python dari hasilnya (ŒṘ
) untuk kejelasan karena perilaku program penuh default akan menghancurkan hasilnya bersama sepertiabbccc...
)Bagaimana?
sumber
Øa×J
harus cukup .MATL , 11 byte
Cobalah online!
Menggunakan siaran multiplikasi dengan yang mendapatkan matriks besar 26x26 dari huruf yang diinginkan. Selanjutnya, bagian segitiga bawah diambil, dan dicetak secara implisit.
Juga 11 byte:
sumber
Javascript,
87 byte, 72 byte (Banyak terima kasih kepada @steenbergh)Jawaban pertama saya juga:
sumber
ind=1
di sekitar pada awal, titik koma setelahi<123
dan titik koma akhir. juga, harap buat tajuk Anda sedikit lebih jelas dengan menyebutkan bahasa - bytecount, diawali dengan #.j
semuanya:for(i=1;i<27;){console.log(String.fromCharCode(i+96).repeat(i++))}
Japt ,
97 byteMenghasilkan array garis
Cobalah
Penjelasan
Membagi (
¬
) huruf kecil (;C
) ke array karakter, memetakan di atas array (Ë
) dan ulangi (p
) elemen saat ini dengan indeks saat ini (E
) bertambah (°
) kali.sumber
®p°Y
Pip , 9 byte
Cobalah online!
Dalam pseudocode, ini
di mana
z
telah diatur ke huruf kecil dani
preset ke 0.Solusi berbasis peta membutuhkan satu byte tambahan karena mereka membutuhkan
-n
bendera untuk ditampilkan pada banyak baris:sumber
Acc !! , 66 byte
Cobalah online!
Dengan komentar
sumber
Haskell , 31 byte
-12 byte terima kasih kepada nimi.
Cobalah online!
Ini bukan snippet, ini adalah fungsi nullary (yang tidak mengambil argumen) yang menampilkan daftar garis yang diperbolehkan karena konsensus meta ini .
sumber
R , 38 byte
Jawaban yang relatif tidak menarik. Iterate
i
mulai dari 1 hingga 26, cetaki
huruf ke-alfabeti
kali (dengan jeda baris tersirat).Cobalah online!
Pendekatan yang lebih menarik mungkin menggunakan sesuatu seperti berikut:
Ini memberi kita semua huruf dalam jumlah yang tepat, tetapi tidak ada linebreak. Mungkin seseorang yang lebih pintar dari saya dapat menemukan cara untuk menggunakannya untuk membuat jawaban golf.
sumber
rep(letters, 1:26)
jauh lebih pendek ...Perl 5 , 19 byte
Cobalah online!
sumber
Karat , 82 byte
Saya berharap bahwa itu akan menjadi jauh lebih pendek, tetapi secara eksplisit mengkonversi / casting antar tipe membutuhkan banyak byte :(
Cobalah online!
sumber
PHP,
4746 byteatau
Jalankan dengan
-nr
atau coba online .sumber
J ,
1817 bytePenjelasan:
Cobalah online!
sumber
Perl 6 ,
2423 byteCobalah
Cobalah
sumber
Oktaf ,
2524 byteCobalah online!
Disimpan satu byte berkat Giuseppe yang memberi tahu saya bahwa OP memungkinkan huruf besar.
Penjelasan:
Buat vektor
x
dengan nilai ASCII dari alfabet huruf besar, dan transposkan. Tambahkan negatedx
(dengan demikian 26 nol, dalam vektor baris, untuk membuat kisi dengan (nilai ASCII):Ambil matriks segitiga bawah dan konversikan ke karakter dengan menggabungkan dengan string kosong.
sumber
C (gcc) ,
48 byte50 byteRe-runnable versi, sesuai cleblanc dan Steadybox di komentar di bawah.
Cobalah online!
sumber
s[9];main(i){for(;i<27;)puts(memset(s,i+95,i++));}
Masih mengalahkan jawaban saya dengan beberapa byte :)s[9];main(i){for(;puts(memset(s,i+95,i++))-27;);}
Japt,
171611 byte-5 byte terima kasih kepada Oliver
Dalam ISO-8859-1
Bukan skor terbaik, tapi saya masih pemula. Setiap saran sangat diterima.
Keluarkan daftar garis, jika OP diizinkan. Tautan berisi 3 byte lebih banyak untuk baris baru.
Cobalah online!
sumber
1oBÊÄ
dapat digantikan oleh26õ
. Anda dapat menyimpan beberapa byte lagi dengan melakukan sesuatu seperti;26ÆCgX pXÄ
o
f