लूआ, 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
ठीक है, मुझे यकीन नहीं है कि दो अवधि की अवधि के साथ लुआ इसके लिए सबसे अच्छी भाषा है ... लेकिन हे, इस पर एक शॉट है। मैं देखूंगा कि क्या कोई सुधार किया जाना है।
संपादित करें:
मुझे दुर्घटना के बारे में कुछ पता चला जो मुझे अजीब लगता है, लेकिन, यह काम करता है।
लुआ में, हर कोई जानता है कि आपके पास चर को कार्य सौंपने की क्षमता है। यह अधिक उपयोगी कोडगॉल्फ विशेषताओं में से एक है।
इसके बजाय इसका मतलब है:
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
लेकिन रुकिए, लुआ कुछ राशि 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 दृष्टिकोण (64 वर्ण) का उपयोग करके string.sub असाइन करना
z=""s=z.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
एक .. nil दृष्टिकोण का उपयोग कर string.sub असाइन करना? (60 अक्षर)
s=z.sub s("50", 1, 1)s("50", 2, 2)s("40", 1, 1)s("40", 2, 2)
अगर किसी को पता है कि यह क्यों काम करता है, तो मुझे दिलचस्पी होगी।