C# Fibonacci SequenceCompute Fibonacci numbers with an iterative algorithm that uses a for-loop.
Fibonacci. Nature contains many patterns. Fibonacci numbers are a fascinating sequence. This sequence models and predicts financial markets and natural phenomena.
Computational methods. We can compute Fibonacci numbers with recursion. This approach can be slow. It is also possible to use iteration.
This is an iterative method. Conceptually, an iterative Fibonacci method stores the result of the previous Fibonacci number before computing the next one.
Note: To compute a Fibonacci number at a certain position N, we have to loop through all previous numbers starting at position 0.
Tip: If you just want to list Fibonacci numbers, you could change Fibonacci() to simply use Console.WriteLine(a).
And: This would make the method print out each number as it is computed, which would reduce the total amount of computation required.
C# program that computes Fibonacci iteratively
public static int Fibonacci(int n)
int a = 0;
int b = 1;
// In N steps compute Fibonacci sequence iteratively.
for (int i = 0; i < n; i++)
int temp = a;
a = b;
b = temp + b;
static void Main()
for (int i = 0; i < 15; i++)
One problem with this implementation is that the int types will overflow past the 47th Fibonacci number. It cannot be used on large numbers.
Tip: To solve this problem, you can change Fibonacci() to return double. Also change a, b, and temp to be of type double.Int, uintDouble
The Fibonacci sequence begins with zero. Fibonacci himself, in 1202, began it with 1, but modern scientists just use his name, not his version of the sequence.
Tip: I tested the output of the program and it is correct. I usually try to post correct code.
Quote: Fibonacci began the sequence not with 0, 1, 1, 2, as modern mathematicians do but with 1, 1, 2.Fibonacci: Wikipedia
A summary. Fibonacci numbers are a useful pattern. But they also teach us about programming. By storing the previous value in a loop iteration, we avoid computational work.
© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to email@example.com.