Lua、77 75 65バイト
x,v=z.rep,io.read()for a=1,v do print(x(0,a-1)..'1'..x(0,v-a))end
まあ、luaが2期間の連結でこれに最適な言語であるかどうかはわかりません...しかし、ちょっと、それでショットがあります。改善すべき点があるかどうかを確認します。
編集:
偶然に何か奇妙なことを見つけましたが、うまくいきます。
Luaでは、変数に関数を割り当てることができることを誰もが知っています。これは、CodeGolfのより便利な機能の1つです。
これは次の代わりに:
string.sub("50", 1, 1) -- = 5
string.sub("50", 2, 2) -- = 0
string.sub("40", 1, 1) -- = 4
string.sub("40", 2, 2) -- = 0
あなたはこれを行うことができます:
s = string.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
しかし、ちょっと待ってください。Luaはある程度のOOPを許可します。だからあなたも潜在的に行うことができます:
z=""
s = z.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
それも同様に機能し、キャラクターをカットします。
さて、ここからが奇妙な部分です。どの時点でも文字列を割り当てる必要さえありません。単純に:
s = z.sub
s("50", 1, 1) -- = 5
s("50", 2, 2) -- = 0
s("40", 1, 1) -- = 4
s("40", 2, 2) -- = 0
動作します。
そのため、違いを視覚的に確認できます。ゴルフの結果を見てみましょう。
string.subを使用(88文字)
string.sub("50", 1, 1)string.sub("50", 2, 2)string.sub("40", 1, 1)string.sub("40", 2, 2)
string.subを変数に割り当てる(65文字)
s=string.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
OOPアプローチを使用したstring.subの割り当て(64文字)
z=""s=z.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
a .. nilアプローチを使用してstring.subを割り当てますか?(60文字)
s=z.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
誰かがこれがうまくいく理由を知っているなら、私は興味があります。