ভূমিকা
এমন একটি সম্পূর্ণ প্রোগ্রাম লিখুন যা ASCII অক্ষরের একটি আয়তক্ষেত্রাকার ব্লককে 90 ডিগ্রি ঘড়ির কাঁটার দিকে ঘোরায়। যখন প্রোগ্রামটি নিজেই 90 ডিগ্রি ঘড়ির কাঁটার দিকে ঘোরানো হয়, তখন এটি ASCII অক্ষরের একটি ব্লককে 90 ঘড়ির কাঁটার দিকে ঘোরায়।
বিধি
- আপনি অনেকগুলি বিল্ট-ইনগুলি ব্যবহার করেন না যা ম্যাট্রিকগুলি ঘোরান বা স্থানান্তর করে। উদাহরণস্বরূপ, ম্যাটল্যাব / অক্টেভে
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
সংক্ষিপ্ততম প্রোগ্রামের জয়। স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ করা হয়েছে।
:.+
বিভিন্ন লাইনে ভেঙে দেওয়া যায় না ?