উত্স কোড দ্বিগুণ করার সাথে জড়িত বেশ কয়েকটি চ্যালেঞ্জ রয়েছে: এখানে এবং এখানে । আমাদের এখানে যে কাজটি করা হয়েছে তা কিছুটা শক্ত, তবে প্রায় প্রতিটি ভাষায়ই তা করা উচিত।
এই চ্যালেঞ্জের ক্ষেত্রে, আপনি একটি স্বেচ্ছাসেবী ইতিবাচক পূর্ণসংখ্যা গ্রহণ করবেন। আপনার প্রোগ্রামটি অবশ্যই পূর্ণসংখ্যাকে আউটপুট দেয় দ্বিগুণ হয়ে যায় । যখন আপনার উত্স কোডটি দ্বিগুণ হবে, তখন এটি ইতিবাচক পূর্ণসংখ্যায় নিয়ে যাবে এবং আউটপুট এটি স্কোয়ার হবে ।
আপনার উত্স কোডটি দ্বিগুণ কীভাবে হয়? ভাল, আপনি এটি আপনার উপায় থাকতে পারে । এর অর্থ হল, আপনি আপনার উত্স কোডটি বাইট বা অক্ষরের স্ট্রিংগুলিতে বিভক্ত করতে পারেন (বা টোকেনযুক্ত ল্যাংগুলিতে টোকেন) কোনও সমান দৈর্ঘ্যের করতে পারেন এবং প্রতিটি খণ্ডকে পর পর দুবার পুনরাবৃত্তি করতে পারেন ।
এর প্রাথমিক প্রোগ্রামের জন্য ABCDEFGHIJKL
, (দৈর্ঘ্য 12) এখানে সমস্ত সম্ভাব্য দ্বিগুণ প্রোগ্রাম রয়েছে:
Chunk length | Doubled source code
-------------+-------------------------
1 | AABBCCDDEEFFGGHHIIJJKKLL
2 | ABABCDCDEFEFGHGHIJIJKLKL
3 | ABCABCDEFDEFGHIGHIJKLJKL
4 | ABCDABCDEFGHEFGHIJKLIJKL
6 | ABCDEFABCDEFGHIJKLGHIJKL
12 | ABCDEFGHIJKLABCDEFGHIJKL
নোট করুন যে এর অর্থ প্রধান দৈর্ঘ্যের প্রোগ্রামগুলি কেবল দুটি উপায়ে দ্বিগুণ করা যেতে পারে: প্রতিটি অক্ষর দ্বিগুণ হয়, বা পুরো প্রোগ্রামটি দু'বার পুনরাবৃত্তি হয়।
নিয়মাবলী:
- কোড একটি পূর্ণ প্রোগ্রাম বা ফাংশন হতে হবে।
- স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
- স্ট্যান্ডার্ড I / O পদ্ধতি অনুমোদিত।
- হোয়াইটস্পেস এবং নিউলাইনগুলি সহ সমস্ত অক্ষর / বাইট কোডের দৈর্ঘ্যে গণনা করা হয় এবং খণ্ডগুলিতে অবদান রাখে।
- আপনি পারে অনুমান যে ইনপুট এবং তার বর্গ আপনার ভাষা এর int- এ / পূর্ণসংখ্যা টাইপ দ্বারা প্রতিনিধিত্ব করা যেতে পারে।
- আপনি অনুবর্তনযোগ্য নতুনলাইন বা অন্যান্য চরিত্রটি ধরে নাও নিতে পারেন।
- বাইট গণনার পরে শিরোনামে আপনার অংশের আকার দিন।
- এটি কোড-গল্ফ , তাই সংক্ষিপ্ত প্রোগ্রামগুলি আরও ভাল! যদি দুটি প্রোগ্রাম একই দৈর্ঘ্যের হয় তবে একটি যা ছোট অংশের দৈর্ঘ্য ব্যবহার করে তা জয়ী হয়। (আপনার যদি আরও দীর্ঘ প্রোগ্রাম থাকে যা একটি ছোট অংশের দৈর্ঘ্য ব্যবহার করে তবে এটি পোস্ট করার পক্ষেও উপযুক্ত!)
- আপনার প্রোগ্রামটির যদি দ্বিতীয় ইনপুট / লাইন প্রয়োজন হয় তবে আপনি এর মান সম্পর্কে কোনও অনুমান করতে পারেন না। বিশেষত, যদি দ্বিতীয় ইনপুট খালি থাকে তবে প্রথম হিসাবে একই, বা কোনও পৃথক পূর্ণসংখ্যা যদি আপনার প্রোগ্রামে কাজ করা উচিত। যদি আপনার প্রোগ্রামটির জন্য দ্বিতীয় ইনপুট / লাইনটির প্রয়োজন না হয় তবে আপনি এই বিধিনিষেধ উপেক্ষা করতে পারেন।
5 -> 10
:; ডবল কোড: 5 -> 25 25
।
.0
শেষে দিয়ে)?