ज़ीकेन्डोर्फ़ प्रतिनिधित्व / बेस फाइबोनैचि संख्याओं के बारे में
यह एक संख्या प्रणाली है जो अपने आधार के रूप में फाइबोनैचि संख्याओं का उपयोग करती है। संख्या में 0 और 1 शामिल हैं और प्रत्येक 1 का मतलब है कि संख्या में संबंधित फाइबोनैचि संख्या शामिल है, और 0 का मतलब यह नहीं है।
उदाहरण के लिए, आइए सभी प्राकृतिक संख्याओं को <= 10 को आधार फाइबोनैचि में परिवर्तित करें।
1 1 हो जाएगा, क्योंकि यह 1 का योग है, जो एक फाइबोनैचि संख्या है,
2 10 हो जाएगा, क्योंकि यह 2 का योग है, जो एक फाइबोनैचि संख्या है, और इसे 1 की आवश्यकता नहीं है, क्योंकि हम पहले से ही वांछित राशि प्राप्त कर चुके हैं।
3 100 हो जाएगा, क्योंकि यह 3 का योग है, जो एक फाइबोनैचि संख्या है और इसे 2 या 1 की आवश्यकता नहीं है क्योंकि हम पहले से ही वांछित राशि प्राप्त कर चुके हैं।
- 4 101 बन जाएगा, क्योंकि यह [3,1] का योग है, दोनों ही फाइबोनैचि संख्याएं हैं।
- 5 1000 हो जाएगा, क्योंकि यह 5 का योग है, जो एक फाइबोनैचि संख्या है, और हमें अन्य संख्याओं की कोई आवश्यकता नहीं है।
- 6 1001 हो जाएगा, क्योंकि यह फाइबोनैचि संख्या 5 और 1 का योग है।
- 7 1010 बन जाएगा, क्योंकि यह फाइबोनैचि संख्या 5 और 2 का योग है।
- 8 10000 हो जाएगा, क्योंकि यह एक फाइबोनैचि संख्या है।
- 9 10001 हो जाएगा, क्योंकि यह फाइबोनैचि संख्या 8 और 1 का योग है।
- 10 10010 बन जाएगा, क्योंकि यह फाइबोनैचि संख्या 8 और 2 का योग है।
आइए एक यादृच्छिक बेस फाइबोनैचि संख्या, 10101001010 को दशमलव में परिवर्तित करें: पहले हम संबंधित फाइबोनैचि संख्या लिखते हैं। फिर हम 1 के तहत संख्याओं के योग की गणना करते हैं।
1 0 1 0 1 0 0 1 0 1 0
144 89 55 34 21 13 8 5 3 2 1 -> 144+55+21+5+2 = 227.
बेस फाइबोनैचि संख्याओं के बारे में अधिक पढ़ें: लिंक , इसमें एक उपकरण भी है जो नियमित पूर्णांकों को आधार फाइबोनैचि में परिवर्तित करता है। आप इसके साथ प्रयोग कर सकते हैं।
अब प्रश्न:
आपका कार्य Zeckendorf प्रतिनिधित्व में एक नंबर लेना है, और इसके दशमलव मान को आउटपुट करना है।
इनपुट एक स्ट्रिंग है जिसमें केवल 0 और 1 है (हालांकि आप किसी भी तरह से इनपुट ले सकते हैं)।
दशमलव में एक नंबर आउटपुट।
परीक्षण के मामले: (प्रारूप इनपुट में-> आउटपुट)
1001 -> 6
100101000 -> 73
1000000000 -> 89
1001000000100100010 -> 8432
1010000010001000100001010000 -> 723452
यह कोड-गोल्फ है, इसलिए बाइट्स में सबसे कम जवाब जीतता है।
नोट: इनपुट में कोई भी अग्रणी 0 या लगातार 1 नहीं होगा।