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)
การกำหนด string.sub โดยใช้วิธีการของ OOP (64 ตัวอักษร)
z=""s=z.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
การกำหนด string.sub โดยใช้วิธีการ .. ไม่มี? (60 ตัวอักษร)
s=z.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
หากมีคนรู้ว่าทำไมงานนี้ฉันจะสนใจ