पृष्ठभूमि
निम्नानुसार परिभाषित एक अनुक्रम पर विचार करें:
- पहला तत्व 0 है;
- दूसरा तत्व 4 है;
- तीसरे तत्व से, इसके मूल्य की गणना निम्न द्वारा की जा सकती है:
- अनुक्रम के पिछले तत्व तक पूर्णांक के सेट को लेना (समावेशी या अनन्य, यह कोई फर्क नहीं पड़ता);
- किसी भी पूर्णांक को हटाना जो पहले से सेट से अनुक्रम में पहले ही प्रकट हो चुका है;
- सेट के शेष तत्वों को एक साथ जोड़ना; वह मूल्य जो आप चाहते हैं।
दिलचस्प है, यह अनुक्रम अभी तक OEIS पर नहीं लगता है ।
काम
एक प्रोग्राम या फ़ंक्शन लिखें जो एक पूर्णांक n को इनपुट के रूप में लेता है , और अनुक्रम के n वें तत्व को आउटपुट करता है ।
परीक्षण के मामलों
अनुक्रम के पहले कुछ तत्व हैं:
- 0
- 4
- 6 (1 + 2 + 3)
- 11 (1 + 2 + 3 + 5)
- 45 (1 + 2 + 3 + 5 + 7 + 8 + 9 + 10)
- 969 (1 + 2 + 3 + 5 + 7… 10 + 12… 44)
- 468930 (1 + 2 + 3 + 5 + 7… 10 + 12… 44 + 46… 968)
स्पष्टीकरण
- यदि आपका भाषा अनियंत्रित रूप से बड़े पूर्णांकों में है और असीमित मात्रा में स्मृति तक पहुँच है, तो आपके कार्यक्रम को सिद्धांत रूप में मनमाने ढंग से n को संभालने में सक्षम होना चाहिए । (बिना बोली के भाषाएं 468930 से आगे निकलने में सक्षम होने की संभावना नहीं है, लेकिन यह उत्तरों को हार्डकोड करने का कोई बहाना नहीं है।)
- आप अनुक्रम के लिए या तो 0-आधारित या 1-आधारित अनुक्रमण चुन सकते हैं (जैसे यह आपके ऊपर है कि n = 1 पहला तत्व लौटाता है, n = 2 दूसरा तत्व, और इसी तरह; या क्या n = 0 पहला तत्व लौटाता है ; , एन = 1 दूसरा तत्व, और इसी तरह)।
- आपके द्वारा उपयोग किए जाने वाले एल्गोरिथ्म पर कोई आवश्यकता नहीं है, न ही इसकी दक्षता पर; आप सीधे अनुक्रम की परिभाषा को लागू कर सकते हैं (भले ही यह वास्तव में अक्षम है), और आप एक अलग एल्गोरिथ्म को भी लागू कर सकते हैं जो समान परिणाम की ओर ले जाता है।
विजय की स्थिति
यह कोड-गोल्फ है , इसलिए सबसे छोटा सही प्रोग्राम है, जिसे बाइट्स में मापा जाता है, जीतता है।