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是否是最好的语言……但是,嘿,有一个镜头。我将看看是否有任何需要改进的地方。
编辑:
我偶然发现了一些奇怪的东西,但是它确实有效。
在Lua中,每个人都知道您可以将函数分配给变量。这是更有用的CodeGolf功能之一。
这意味着代替:
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)
如果有人知道为什么这样做,我会很感兴趣。