हम सभी फाइबोनैचि अनुक्रम से परिचित हैं :
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765
हालाँकि, इसके बजाय, f(n) = f(n-1) + f(n-2)
हम पिछली 2 प्रविष्टियों की डिजिटल राशि लेंगे ।
अनुक्रम अभी भी शुरू होना चाहिए 0, 1
, इसके बाद मतभेद तेजी से स्पष्ट होते हैं। यह सूची 0-अनुक्रमित है, आप 1-अनुक्रमित के रूप में अच्छी तरह से उपयोग कर सकते हैं, राज्य जो आपने उपयोग किया था।
f(0) = 0
f(1) = 1
f(2) = 1 # 0 + 1
f(3) = 2 # 1 + 1
f(4) = 3 # 1 + 2
f(5) = 5 # 2 + 3
f(6) = 8 # 3 + 5
f(7) = 13 # 8 + 5
f(8) = 12 # 8 + 1 + 3
f(9) = 7 # 1 + 3 + 1 + 2
f(10) = 10 # 1 + 2 + 7
f(11) = 8 # 7 + 1 + 0
f(12) = 9 # 1 + 0 + 8
f(13) = 17 # 8 + 9
f(14) = 17 # 9 + 1 + 7
f(15) = 16 # 1 + 7 + 1 + 7
f(16) = 15 # 1 + 7 + 1 + 6
f(17) = 13 # 1 + 6 + 1 + 5
f(18) = 10 # 1 + 5 + 1 + 3
f(19) = 5 # 1 + 3 + 1 + 0
f(20) = 6 # 1 + 0 + 5
f(21) = 11 # 5 + 6
f(22) = 8 # 6 + 1 + 1
f(23) = 10 # 1 + 1 + 8
f(24) = 9 # 8 + 1 + 0
f(25) = 10 # 1 + 0 + 9
f(26) = 10 # 9 + 1 + 0
f(27) = 2 # 1 + 0 + 1 + 0
(After this point it repeats at the 3rd term, 0-indexed)
नोट: मैंने पुनरावृत्ति पर ध्यान नहीं दिया, जब तक कि मैंने खुद को चुनौती नहीं दी, और यहाँ मैं सोच रहा था कि एक और उपन्यास फेकलोन चैलेंज लिखना असंभव होगा।
आपका कार्य एक नंबर दिया गया है, n
इस क्रम का nth अंक आउटपुट।
सबसे पहले 3 अंक: [0,1,1]
,
24-अंक दोहराया पैटर्न: [2,3,5,8,13,12,7,10,8,9,17,17,16,15,13,10,5,6,11,8,10,9,10,10]
संकेत: आप अपने लाभ के लिए इस पुनरावृत्ति का फायदा उठाने में सक्षम हो सकते हैं।
यह कोड-गोल्फ है , सबसे कम बाइट-काउंट विजेता है।
बोनस: यदि आप अपने उत्तर में पुनरावृत्ति का उपयोग करते हैं, तो मैं सबसे कम बाइट-काउंट का उत्तर दूंगा जो कि अनुक्रम में दोहराव का लाभ उठाता है, जो 100 अंकों का एक इनाम है। इसे आपके मूल उत्तर के भाग के रूप में प्रस्तुत किया जाना चाहिए, आपके मूल उत्तर के बाद। इस पोस्ट को इस उदाहरण के रूप में देखें कि मैं किस बारे में बात कर रहा हूं: https://codegolf.stackexchange.com/a/108972/59376
इस बोनस के लिए अर्हता प्राप्त करने के लिए आपका कोड निरंतर समय ( O(1)
) में स्पष्टीकरण के साथ चलना चाहिए ।
बोनस विजेता: डेनिस https://codegolf.stackexchange.com/a/108967/59376 <डेनिस जीता।
सबसे अनोखा कार्यान्वयन: https://codegolf.stackexchange.com/a/108970/59376
(सही उत्तर चुने जाने के बाद भी 100 अंक प्राप्त होंगे,)
%24
एक "सामान्य" समाधान में जोड़ता हूं ?
O(1)
। आपका कोड निरंतर समय में चलना चाहिए, अगर यह वास्तव में पुनरावृत्ति का शोषण कर रहा है।