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
Beh, non sono sicuro che lua sia la lingua migliore per questo con la concatenazione di due periodi ... Ma hey, c'è una possibilità. Vedrò se ci sono miglioramenti da apportare.
MODIFICARE:
Ho scoperto qualcosa per caso che trovo piuttosto strano, ma funziona.
In Lua, tutti sanno che hai la possibilità di assegnare funzioni alle variabili. Questa è una delle funzionalità più utili di CodeGolf.
Ciò significa invece di:
string.sub("50", 1, 1) -- = 5
string.sub("50", 2, 2) -- = 0
string.sub("40", 1, 1) -- = 4
string.sub("40", 2, 2) -- = 0
Puoi farlo:
s = string.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
Ma aspetta, Lua consente una certa quantità di OOP. Quindi potresti potenzialmente fare anche:
z=""
s = z.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
Funzionerà anche e taglierà i personaggi.
Ora ecco che arriva la parte strana. Non è nemmeno necessario assegnare una stringa in nessun punto. Semplicemente facendo:
s = z.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
Funzionerà.
Quindi puoi vedere visivamente la differenza, dai un'occhiata ai risultati golfati di questo:
Utilizzo di string.sub (88 caratteri)
string.sub("50", 1, 1)string.sub("50", 2, 2)string.sub("40", 1, 1)string.sub("40", 2, 2)
Assegnare string.sub a una variabile (65 caratteri)
s=string.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
Assegnare string.sub usando un approccio OOP (64 caratteri)
z=""s=z.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
Assegnare string.sub usando un approccio .. nil? (60 caratteri)
s=z.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
Se qualcuno sa perché questo funziona, sarei interessato.