डीसी , 25 22 बाइट्स
9k5v1+2/3?*1-^5v/0k2/p
इसे ऑनलाइन आज़माएं!
या प्रोग्राम को किसी फाइल में सेव करके टाइप करके चलाएं
dc -f *filename*
कार्यक्रम स्टैडिन पर एक गैर-नकारात्मक पूर्णांक n स्वीकार करता है , और यह पहले के योग को आउटपुट करता है n समबाहु फाइबोनैचि संख्याओं उत्पन्न करता है। (ओबी के उदाहरणों के अनुसार फाइबोनैचि अनुक्रम को 0 से शुरू करने के लिए लिया गया है।)
यह प्रोग्राम पहले n सम फाइबोनैचि संख्याओं के योग के लिए सूत्र (F (3n-1) -1) / 2 का उपयोग करता है, जहाँ F, F (0) = 0, F (1) = द्वारा दिया गया सामान्य Fibnote फ़ंक्शन है। N> = 2 के लिए 1, एफ (एन) = एफ (एन -2) + एफ (एन -1)।
dc एक स्टैक-आधारित कैलकुलेटर है। यहां एक विस्तृत विवरण दिया गया है:
9k # Sets the precision to 9 decimal places (which is more than sufficient).
5v # Push the square root of 5
1+ # Add 1 to the number at the top of the stack.
2/ # Divide the number at the top of the stack by 2.
इस बिंदु पर, संख्या (1 + sqrt (5)) / 2 स्टैक के शीर्ष पर है।
3 # Push 3 on top of the stack.
? # Read a number from stdin, and push it.
\* # Pop two numbers from the stack, multiply them, and push the product
1- # Subtract 1 from the number at the top of the stack.
इस बिंदु पर, 3n-1 स्टैक के शीर्ष पर है (जहां n इनपुट है), और (1 + sqrt (5)) / 2 शीर्ष से दूसरा है।
^ # Pop two numbers from the stack (x, then y), compute the power y^x, and push that back on the stack.
5v/ # Divide the top of the stack by sqrt(5).
इस बिंदु पर, ढेर के शीर्ष पर संख्या है (((1 + sqrt (5)) / 2) ^ (3n-1)) / sqrt (5)। इस संख्या का निकटतम पूर्णांक F (3n-1) है। ध्यान दें कि F (3n-1) हमेशा एक विषम संख्या होती है।
0k # Change precision to 0 decimal places.
2/ # Divide the top of the stack by 2, truncating to an integer.
p # Print the top of the stack on stdout.