ऐलिस , 23 बाइट्स
/oRe./'+Ao
\I*tI&0-R$@/
इसे ऑनलाइन आज़माएं!
पहली पंक्ति में संख्या और दूसरी पर चौड़ाई के साथ इनपुट को लाइनफीड-अलग किया जाना चाहिए।
व्याख्या
/...
\...@/
यह ऑर्डिनल मोड में रैखिक कार्यक्रमों के लिए सामान्य रूपरेखा है। इस मामले में एकमात्र पकड़ यह है:
.../...
...&...
यह IP को कार्डिनल मोड में लंबवत रूप से दर्ज करने का कारण बनता है और &
साधारण मोड में फिर से शुरू होने से पहले कार्डिनल मोड में निष्पादित करता है।
ज़िगज़ैग नियंत्रण प्रवाह को अनफॉलो करना तब देता है:
IRt.&'-A$o*eI/&/0+Ro@
I Read the first line of input (the value) as a string.
R Reverse the string.
t. Split off the last character and duplicate it.
& Fold the next command over this string. This doesn't really do anything,
because the string contains only one character (so folding the next
command is identical to executing it normally).
'- Push "-".
A Set intersection. Gives "-" for negative inputs and "" otherwise.
$o If it's "-", print it, otherwise it must have been a digit which we
leave on the stack.
* Join the digit back onto the number. If the number was negative, this
joins the (absolute value of the) number to an implicit empty string,
doing nothing.
e Push an empty string.
I Read the width W.
/&/ Iterate the next command W times.
0 Append a zero. So we get a string of W zeros on top of the absolute
value of the input number.
+ Superimpose. This takes the character-wise maximum of both strings
and appends extraneous characters from the longer string. Since the
string of zeros can never be larger than the digits in the input,
the input itself will be uneffected, but extraneous zeros are appended,
padding the string to the required length.
R Reverse the result.
o Print it.
@ Terminate the program.
यहाँ 23 बाइट्स पर दो विकल्प दिए गए हैं, जो छुटकारा पाने के लिए कार्डिनल H
( पेट ) का उपयोग करते हैं -
:
/R.I&0-RoH
\Ie#\'+Ao\@/
/R.H#/.+Xo
\Ie\I&0QRo@/
सिद्धांत रूप में, ये एक कमांड शार्ट होते हैं, लेकिन &
ऐसी स्थिति में फिट नहीं होते हैं जहाँ स्टैक पर 1-कैरेक्टर स्ट्रिंग हो, इसलिए हमें इसे छोड़ना होगा #
।