Lua, 77 75 65 bytes
x,v=z.rep,io.read()for a=1,v do print(x(0,a-1)..'1'..x(0,v-a))end
Bueno, no estoy seguro de si lua es el mejor lenguaje para esto con la concatenación de dos períodos ... Pero bueno, hay una oportunidad. Veré si hay alguna mejora que hacer.
EDITAR:
Descubrí algo por accidente que encuentro bastante extraño, pero funciona.
En Lua, todos saben que tienes la capacidad de asignar funciones a variables. Esta es una de las características más útiles de CodeGolf.
Esto significa en lugar de:
string.sub("50", 1, 1) -- = 5
string.sub("50", 2, 2) -- = 0
string.sub("40", 1, 1) -- = 4
string.sub("40", 2, 2) -- = 0
Puedes hacerlo:
s = string.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
Pero espera, Lua permite cierta cantidad de POO. Por lo tanto, incluso podría hacer:
z=""
s = z.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
Eso también funcionará y cortará personajes.
Ahora aquí viene la parte extraña. Ni siquiera necesita asignar una cadena en ningún punto. Simplemente haciendo:
s = z.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
Trabajará.
Para que pueda ver la diferencia visualmente, eche un vistazo a los resultados de golf de esto:
Usando string.sub (88 caracteres)
string.sub("50", 1, 1)string.sub("50", 2, 2)string.sub("40", 1, 1)string.sub("40", 2, 2)
Asignación de string.sub a una variable (65 caracteres)
s=string.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
Asignación de string.sub usando un enfoque OOP (64 caracteres)
z=""s=z.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
Asignación de string.sub usando un enfoque nulo? (60 caracteres)
s=z.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
Si alguien sabe por qué esto funciona, estaría interesado.