यदि आप क्या करना चाहते हैं, तो फ़ंक्शन को अधिक कुशल बनाना है, तो एक लुकअप तालिका का उपयोग करें। लुकअप तालिका केवल 47 प्रविष्टियों पर आश्चर्यजनक रूप से छोटी है - अगली प्रविष्टि 32-बिट अहस्ताक्षरित पूर्णांक को ओवरफ्लो करेगी। यह भी निश्चित रूप से फ़ंक्शन को लिखने के लिए तुच्छ बनाता है।
class Sequences
{
// Store the complete list of values that will fit in a 32-bit unsigned integer without overflow.
private static readonly uint[] FibonacciSequence = { 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,
233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418,
317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169,
63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073
};
public uint fibn(uint N)
{
return FibonacciSequence[N];
}
}
आप स्पष्ट रूप से गुटों के लिए एक ही काम कर सकते हैं।