Lua, 77 75 65 byte
x,v=z.rep,io.read()for a=1,v do print(x(0,a-1)..'1'..x(0,v-a))end
Yah, aku tidak yakin apakah lua adalah bahasa terbaik untuk ini dengan penggabungan dua periode ... Tapi, hei, ada kesempatan untuk itu. Saya akan melihat apakah ada perbaikan yang harus dilakukan.
EDIT:
Saya menemukan sesuatu pada kecelakaan yang menurut saya agak aneh, tetapi berhasil.
Di Lua, semua orang tahu Anda memiliki kemampuan untuk menetapkan fungsi ke variabel. Ini adalah salah satu fitur CodeGolf yang lebih berguna.
Ini berarti bukannya:
string.sub("50", 1, 1) -- = 5
string.sub("50", 2, 2) -- = 0
string.sub("40", 1, 1) -- = 4
string.sub("40", 2, 2) -- = 0
Kamu bisa melakukan ini:
s = string.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
Tapi tunggu, Lua memungkinkan sejumlah OOP. Jadi, Anda bahkan berpotensi melakukan:
z=""
s = z.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
Itu akan bekerja juga dan memotong karakter.
Sekarang inilah bagian yang aneh. Anda bahkan tidak perlu menetapkan string di titik mana pun. Cukup melakukan:
s = z.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
Akan bekerja.
Agar Anda dapat melihat perbedaannya secara visual, lihat hasil golf ini:
Menggunakan string.sub (88 karakter)
string.sub("50", 1, 1)string.sub("50", 2, 2)string.sub("40", 1, 1)string.sub("40", 2, 2)
Menetapkan string.sub ke variabel (65 karakter)
s=string.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
Menetapkan string.sub menggunakan pendekatan OOP (64 karakter)
z=""s=z.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
Menetapkan string.sub menggunakan pendekatan .. nil? (60 karakter)
s=z.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
Jika seseorang tahu mengapa ini berhasil, saya akan tertarik.