परिचय
एक पूरा कार्यक्रम लिखें जो ASCII वर्णों के आयताकार ब्लॉक को 90 डिग्री दक्षिणावर्त घुमाता है। जब प्रोग्राम को स्वयं 90 डिग्री दक्षिणावर्त घुमाया जाता है, तो यह ASCII वर्णों के एक ब्लॉक को 90 वामावर्त घुमाता है।
नियम
- आप कई बिल्ट-इन का उपयोग नहीं करते हैं जो मेट्रिसेस को घुमाते या स्थानांतरित करते हैं। उदाहरण के लिए, MATLAB / ऑक्टेव
rot90
और पारगमन ऑपरेटर'
की अनुमति नहीं है। - आपको एक पूरा कार्यक्रम लिखना होगा जो STDIN और STDOUT या निकटतम समकक्ष का उपयोग करता है।
- आपका प्रोग्राम आयताकार होना चाहिए और मान लें कि इनपुट भी आयताकार है।
- इनपुट और आउटपुट एक नई लाइन से अलग किए गए तार हैं और इसमें नई सीमाएँ नहीं होंगी।
जब इनपुट के रूप में इसके स्रोत कोड के साथ चलाया जाता है, तो आपके प्रोग्राम को 90 डिग्री दक्षिणावर्त घुमाना चाहिए। आउटपुट का उसी भाषा में एक दूसरा प्रोग्राम होना चाहिए जो अपने इनपुट को 90 डिग्री वामावर्त घुमाए। जब घुमाए गए कार्यक्रम को इनपुट के रूप में अपना स्रोत कोड दिया जाता है, तो उसे मूल कार्यक्रम के स्रोत कोड का उत्पादन करना चाहिए।
नोट: दोनों कार्यक्रमों को किसी भी इनपुट के लिए काम करना चाहिए , न कि केवल अपने स्वयं के स्रोत कोड के लिए, इसलिए एक वर्ण की अनुमति नहीं है।
उदाहरण
निम्नलिखित कहें कि एक वैध कार्यक्रम है जो अपने इनपुट को 90 डिग्री तक काल्पनिक भाषा में घुमाता है।
^f a2% 3
lk (^_^&
v
D8 $4 /
जब इनपुट के रूप में स्वयं के साथ चलाया जाता है, तो यह एक अन्य वैध प्रोग्राम को आउटपुट करता है जो इसके इनपुट वामावर्त को घुमाता है:
D l^
8 kf
$ (a
4 ^2
_%
^
/v&3
यह दूसरा कार्यक्रम, जब खुद को इनपुट के रूप में दिया जाता है, तो मूल कार्यक्रम का आउटपुट होता है। ध्यान दें कि रिक्त रेखा में चार स्थान होने चाहिए और दूसरी से अंतिम पंक्ति के लिए एक अनुगामी स्थान है जिसे मार्कडाउन में प्रस्तुत नहीं किया जा सकता है। स्पष्टीकरण देना:
$ examplelang program < program > rotProg
$ examplelang rotProg < rotProg > program1
$ diff -s program program1
Files program and program1 are identical
सबसे छोटा कार्यक्रम जीतता है। मानक खामियों पर रोक लगाई जाती है।
:.+
कई लाइनों पर नहीं तोड़ा जा सकता है?