जैसा कि आप शायद जानते हैं, एक फाइबोनैचि संख्या वह है जो श्रृंखला में पिछले दो संख्याओं का योग है।
एक फाइबोनैचि डिजिट ™ वह है जो पिछले दो अंकों का योग है ।
उदाहरण के लिए, श्रृंखला की शुरुआत के लिए 1,1, श्रृंखला होगी 1,1,2,3,5,8,13,4,7,11,2...परिवर्तन के बाद होता है 13, जहां, जोड़ने के बजाय 8+13, आप जोड़ते हैं 1+3। श्रृंखला के अंत में छोरों, जहां 4+7=11, और 1+1=2, जैसे ही श्रृंखला शुरू होती है।
एक और उदाहरण के लिए, श्रृंखला शुरू 2,2: 2,2,4,6,10,1,1,2,3,5,8,13,4,7,11,2,3...। यह एक विशिष्ट रूप से शुरू होता है, लेकिन एक बार अंकों के योग के साथ 10, आप समाप्त हो जाते हैं 1+0=1, 0+1=1, और श्रृंखला जारी रहती है - और लूप - उसी तरह जैसे 1,1श्रृंखला ने किया था।
चुनौती
पूर्णांक इनपुट को देखते हुए 0≤n≤99, उन दो अंकों के साथ शुरू होने वाले फाइबोनैचि अंक श्रृंखला में लूप की गणना करें। (आप निश्चित रूप से हैं से इस सीमा से पूर्णांक पर विचार करने की अनुमति है, लेकिन इसकी आवश्यकता नहीं है।) यदि एक-अंक का इनपुट दिया जाता है, तो आपके कोड को श्रृंखला की शुरुआत को दर्शाने के लिए इसकी व्याख्या करनी चाहिए।0,n ।
लूप में सभी संख्याएं जो दो अंकों की होती हैं, उन्हें दो अंकों के रूप में आउटपुट किया जाना चाहिए। इसलिए, उदाहरण के लिए, लूप 1,1शामिल होगा 13, नहीं 1,3।
आउटपुट लूप में पहले नंबर से शुरू होता है। तो, उपरोक्त प्रतिबंधों के आधार पर, के लिए लूप 1,1शुरू होता है 2, तब से 1,1और11 अलग से गिने जाते हैं।
जब तक यह सुसंगत है, तब तक आउटपुट की प्रत्येक संख्या को आप जो चाहें, अलग कर सकते हैं। मेरे सभी उदाहरणों में, मैं कॉमा का उपयोग करता हूं, लेकिन रिक्त स्थान, लाइन ब्रेक, यादृच्छिक पत्र आदि सभी की अनुमति है, जब तक आप हमेशा एक ही पृथक्करण का उपयोग करते हैं। तो के 2g3g5g8g13g4g7g11लिए एक कानूनी उत्पादन है 1, लेकिन2j3g5i8s13m4g7sk11 नहीं है। आप तार, सूचियों, सरणियों का उपयोग कर सकते हैं, जो भी, बशर्ते कि आपके पास एक सुसंगत विभाजक द्वारा अलग किए गए सही क्रम में सही संख्याएं हों। पूरे आउटपुट को क्रैक करने की भी अनुमति है (उदा। (5,9,14)या [5,9,14], आदि)।
परीक्षण के मामलों:
1 -> 2,3,5,8,13,4,7,11
2 -> 2,3,5,8,13,4,7,11
3 -> 11,2,3,5,8,13,4,7
4 -> 3,5,8,13,4,7,11,2
5 -> 2,3,5,8,13,4,7,11
6 -> 3,5,8,13,4,7,11,2
7 -> 14,5,9
8 -> 13,4,7,11,2,3,5,8
9 -> 11,2,3,5,8,13,4,7
0 -> 0
14 -> 5,9,14
59 -> 5,9,14
यह कोड-गोल्फ है , इसलिए सबसे कम संख्या में बाइट्स जीतती हैं।
14और 59एक ही परिणाम दे। यदि 59शुरुआत के रूप में व्याख्या की जाती है 5,9और लूप के हिस्से के रूप में अनुमति दी जाती है तो निश्चित रूप 14से इसके लूप की शुरुआत होनी चाहिए?
0,1,1,2,3,5,8,13,4,7,11,2,3। पहली बार जो लूप दोहराता है वह दूसरे पर है 2।
1,4,5,9,14,5और 5,9,14,5,9। दोनों ने दूसरे के साथ शुरुआत दोहराई 5। जैसा कि मैंने पहले कहा था, केवल इनपुट विभाजित है; बाद के अंक अपने अंकों को अनुक्रम में एक साथ रखते हैं।