आइए हम फाइबोनैचि अनुक्रम को इस रूप में परिभाषित करते हैं
F(1) = 1
F(2) = 2
F(n) = F(n - 2) + F(n - 1)
इसलिए हमारे पास अनंत अनुक्रम हैं 1,2,3,5,8,13,
... यह सर्वविदित है कि किसी भी सकारात्मक पूर्णांक को कुछ फाइबोनैचि संख्याओं के योग के रूप में लिखा जा सकता है। एकमात्र चेतावनी यह है कि यह योग अद्वितीय नहीं हो सकता है। फाइबोनैचि संख्याओं के योग के रूप में किसी संख्या को लिखने के लिए हमेशा कम से कम एक तरीका होता है लेकिन कई और भी हो सकते हैं।
आपकी चुनौती एक पूर्ण कार्यक्रम लिखने की है, जो एक और एक मिलियन समावेशी के बीच एक धनात्मक पूर्णांक में ले जाता है, और फिर इनपुट का योग करने वाले फाइबोनैचि संख्या के सभी संभावित योगों का उपयोग करते हुए आउटपुट करता है। एक सारांश में, फाइबोनैचि संख्याओं को दोहराना नहीं चाहिए और इसमें संख्या शामिल है 1
। किसी भी सारांश में, यदि 1
मौजूद है, तो उसे केवल एक बार उपस्थित होना चाहिए क्योंकि ऊपर दिए अनुक्रम की मेरी परिभाषा 1
केवल एक बार दिखाई देती है। केवल टर्म के साथ योग मान्य हैं इसलिए यदि इनपुट नंबर एक फाइबोनैचि संख्या है, तो संख्या स्वयं एक मान्य योग है और इसे मुद्रित किया जाना चाहिए। यदि कई रकम हैं, तो किसी भी दो रकम के बीच आसानी से अंतर करने के लिए एक खाली रेखा होनी चाहिए।
यहाँ कुछ नमूने हैं।
./myfib 1
1
इस तरह का एक ही योग है और इसका केवल एक ही शब्द है, इसलिए यह सब मुद्रित है।
./myfib 2
2
यहाँ ध्यान दें कि 1+1
एक मान्य राशि नहीं है क्योंकि 1
दोहराता है।
./myfib 3
1+2
3
दो रकम और वे दोनों बीच में एक रिक्त रेखा के साथ मुद्रित होते हैं।
./myfib 10
2+8
2+3+5
./myfib 100
3+8+89
1+2+8+89
3+8+34+55
1+2+3+5+89
1+2+8+34+55
3+8+13+21+55
1+2+3+5+34+55
1+2+8+13+21+55
1+2+3+5+13+21+55
ट्रू कोड-गोल्फ। किसी भी भाषा में सबसे छोटा कोड जीतता है। कृपया कुछ परीक्षण मामलों के साथ अपना कोड पोस्ट करें (इसके अलावा जो मैंने ऊपर दिया था)। संबंधों के मामले में, मैं कम से कम दो सप्ताह के इंतजार के बाद सबसे अधिक उठाव के साथ एक उठाता हूं और शायद लंबे समय तक। इसलिए समुदाय कृपया अपनी पसंद के किसी भी समाधान को उभारने के लिए स्वतंत्र महसूस करें। कोड की चतुराई / सुंदरता पहले पोस्ट करने वालों की तुलना में बहुत अधिक मायने रखती है।
हैप्पी कोडिंग!