Lua, 77 75 65 octets
x,v=z.rep,io.read()for a=1,v do print(x(0,a-1)..'1'..x(0,v-a))end
Eh bien, je ne suis pas sûr que Lua soit la meilleure langue pour cela avec la concaténation en deux périodes ... Mais bon, on a une chance. Je verrai s'il y a des améliorations à apporter.
MODIFIER:
J'ai trouvé quelque chose par hasard que je trouve assez étrange, mais ça marche.
En Lua, tout le monde sait que vous avez la possibilité d’attribuer des fonctions à des variables. C'est l'une des fonctionnalités les plus utiles de CodeGolf.
Cela signifie au lieu 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
Tu peux le faire:
s = string.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
Mais attendez, Lua permet une certaine quantité de POO. Donc, vous pourriez même potentiellement faire:
z=""
s = z.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
Cela fonctionnera aussi bien et coupe les caractères.
Maintenant, voici la partie étrange. Vous n'avez même pas besoin d'attribuer une chaîne à un moment donné. Faire simplement:
s = z.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
Marchera.
Pour que vous puissiez voir visuellement la différence, jetez un coup d’œil aux résultats obtenus:
Utilisation de string.sub (88 caractères)
string.sub("50", 1, 1)string.sub("50", 2, 2)string.sub("40", 1, 1)string.sub("40", 2, 2)
Affectation de string.sub à une variable (65 caractères)
s=string.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
Affectation de string.sub en utilisant une approche POO (64 caractères)
z=""s=z.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
Assigner string.sub en utilisant une approche .. nil? (60 caractères)
s=z.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
Si quelqu'un sait pourquoi cela fonctionne, je serais intéressé.