আসুন একটি সাধারণ লুপটি দেখুন, যা সাধারণত 8 টি পুনরাবৃত্তি করে:
for (int x=0; x<8; ++x);
আপনি এটি অসীম করতে হবে!
এটি এমন সমস্ত ভাষার পক্ষে জনপ্রিয়তা-প্রতিযোগিতা যা এই জাতীয় ফর্মকে সমর্থন করে for। সুতরাং সর্বাধিক স্কোর সহ সমাধান (আপভোটস বিয়োগ ডাউনভোটেস) জিতল।
যদি আপনার ভাষাতে forলুপের অন্য রূপ থাকে তবে আপনি নিশ্চিত, আপনি এটি দিয়ে কিছু শীতল করতে পারেন, উত্তর পোস্ট করতে নির্দ্বিধায় এবং এটিকে নন-কেপটিং হিসাবে চিহ্নিত করুন। আমি উপলভ্য নির্মাণ এবং ভাষাগুলির বিস্তৃত করার অধিকার সংরক্ষণ করি, তবে এটি কখনই সঙ্কুচিত হবে না, সুতরাং পূর্বে সঠিক সমাধানগুলি ফেলে দেওয়ার ভয় পাবেন না।
সমাধান কী?
সমাধান দুটি প্রোগ্রাম নিয়ে গঠিত ।
প্রথম প্রোগ্রামটি একটি পরিষ্কার প্রোগ্রাম। এটি আপনার ভাষায় for8 টি পুনরাবৃত্তি তৈরির সাথে সাধারণ প্রোগ্রাম । এটি স্বাভাবিক প্রোগ্রাম হওয়া উচিত, যে কোনও বিকাশকারী লিখতে পারেন। প্রস্তুতির উদ্দেশ্যে কোনও বিশেষ হ্যাক নেই। উদাহরণ স্বরূপ:
int main()
{
for (int x=0; x<8; ++x);
return 0;
}
দ্বিতীয় প্রোগ্রামটি বাড়ানো হয়েছে। এই প্রোগ্রামটিতে ক্লিন প্রোগ্রাম থেকে সমস্ত কোড এবং কিছু অতিরিক্ত কোড থাকা উচিত। সীমিত সংখ্যক এক্সটেনশন পয়েন্ট রয়েছে, বিশদগুলির জন্য সম্পূর্ণ বিধি বিভাগটি দেখুন। উপরের পরিষ্কারের জন্য একটি বাড়ানো প্রোগ্রাম হতে পারে
inline bool operator < (const int &a, const int &b)
{
return true;
}
int main()
{
for (int x=0; x<8; ++x);
return 0;
}
একটি ধারণা দেখানোর জন্য এটি কেবলমাত্র উদাহরণ (সি ++ এ অবিচ্ছেদ্য) আসল সঠিক অগমেন্টেড প্রোগ্রামটি সংকলনযোগ্য, কাজ করা এবং অসীম লুপ থাকতে হবে।
সম্পূর্ণ বিধি
উভয় প্রোগ্রাম:
- এই জাতীয়
forলুপগুলির সমর্থন সহ যে কোনও ভাষা ঠিক আছে। - লুপের বডিটি খালি রাখতে হবে। আরও স্পষ্টভাবে, আপনি কিছু আউটপুট বা অন্যান্য কোড লুপের মধ্যে রাখতে পারেন, তবে ফাঁকা লুপের ক্ষেত্রে লুপের আচরণ একই হওয়া উচিত।
পরিষ্কার প্রোগ্রাম:
লুপটি পূর্ণসংখ্যার বা সংখ্যার কাউন্টার ব্যবহার করে এবং 8 টি পুনরাবৃত্তি সম্পাদন করে:
for (int x=0; x<8; ++x); // C, C++, C# for (var x=0; x<8; ++x); // C#, Javascript for (auto x=0; x<8; ++x); // C, C++ for (auto signed x=0; x<8; ++x); // C, C++ for (register int x=0; x<8; ++x); // C, C++ব্যবহারকারী-সংজ্ঞায়িত প্রকারগুলি অনুমোদিত নয়।
- লুপ ভেরিয়েবলের পরিবর্তে সম্পত্তি (বৈশ্বিক চলক ব্যতীত) ব্যবহার করা নিষিদ্ধ।
ভেরিয়েবলের ঘোষণাটি লুপের অভ্যন্তরে বা বাইরেও হতে পারে। নিম্নলিখিত কোডটি ঠিক আছে:
int x; for(x=0; x<8; ++x);উপসর্গ বা পোস্টফিক্স ইনক্রিমেন্ট ব্যবহার করা যেতে পারে।
8নাম স্থির বা পরিবর্তনশীল না সঞ্চয় করে লুপ সীমাটি একটি ধ্রুবক আক্ষরিক হিসাবে লিখতে হবে। এটি ভেরিয়েবল বা ধ্রুবক 8 টির সমান ঘোষণার উপর ভিত্তি করে সমাধানগুলি প্রতিরোধ করার জন্য তৈরি করা হয়েছে এবং তারপরে পুনরায় স্বাক্ষর করা, ওভাররাইডিং বা এটিকে অন্য মান দ্বারা ছায়ায়িত করে:const double n = 8; int main() { const double n = 9007199254740992; for (double x=0; x<n; ++x); return 0; }
সংযুক্ত প্রোগ্রাম:
- ক্লিনটি থেকে সমস্ত কোড থাকা আবশ্যক।
- সীমিত সংখ্যক এক্সটেনশন পয়েন্টগুলিতে পরিষ্কার প্রোগ্রাম প্রসারিত করা উচিত।
- অসীম লুপ হিসাবে একই
forলুপটি কার্যকর করতে হবে।
লুপটিকে অন্য অসীম নির্মাণে স্থাপন করা ঠিক নয়। - কোডটির রানটাইম বা সংকলন-সময় প্যাচিংয়ের অনুমতি রয়েছে যতক্ষণ না এটির পাঠ্য উপস্থাপনা অপরিবর্তিত থাকে।
- স্ট্রিংয়ে নির্মাণ স্থাপন করা এবং এতে পাস করার
evalঅনুমতি নেই।
এক্সটেনশন পয়েন্ট:
- অন্য ফাইল বা অন্যান্য সমাবেশগুলি সহ ক্লিন কোড সহ খণ্ডের বাইরে অন্য কোথাও।
forবিবৃতি (একক টুকরো হিসাবে -forনির্মাণ এবং তার শরীর) অবশ্যই অপরিবর্তিত রাখতে হবে।- চলক ঘোষণা অবশ্যই একই রাখতে হবে।
- সাধারণ বিবৃতিগুলির মধ্যে যে কোনও স্থান এক্সটেনশন পয়েন্ট হিসাবে ব্যবহার করা যেতে পারে।
- যদি এবং কেবলমাত্র ভেরিয়েবল লুপের বাইরে ঘোষণা করা হয় এবং মানটির তাত্ক্ষণিক অ্যাসাইনমেন্ট ব্যতীত, এই জাতীয় অ্যাসাইনমেন্ট যুক্ত করা যায়।
/* extension point here */
int main()
/* extension point here */
{
/* extension point here */
int x /* extension point for assignment here */;
/* extension point here */
for (x=0; x<8; ++x);
/* extension point here */
return 0;
/* extension point here */
}
/* extension point here */
int main()
{
/* BEGIN: No changes allowed */ int x = 0; /* END */
/* extension point here */
/* BEGIN: No changes allowed */ for (x=0; x<8; ++x); /* END */
return 0;
}
পিএস: যদি সম্ভব হয় তবে অনলাইনে আইডিইতে একটি লিঙ্ক সরবরাহ করুন।
java.lang.Integer? ২. এটি একটি সঠিক বিজয়ী মানদণ্ডের সাথে আরও ভাল হবে।