Fibonacci SequenceImplement the Fibonacci sequence. Each number is the sum of the previous two in this sequence.
VB.NET
Fibonacci sequence. The Fibonacci sequence has many uses. In this sequence, each number is the sum of the previous two numbers.
A brief history. In the 1200s Fibonacci published the sequence, showing its use in collecting interest. The sequence has been shown to have many other uses.
Example. This is an iterative implementation of the Fibonacci sequence, where we compute numbers in a loop. We use a temporary variable to copy the previous number.
Tip The Fibonacci method returns a number within the Fibonacci sequence, by its index.
However You could store all the numbers in a List for better lookup performance. This eliminates the entire loop after initialization.
Note The output matches the Fibonacci sequence. And we can add the two previous numbers up to check the sequence mentally.
Module Module1 Function Fibonacci(ByVal n As Integer) As Integer Dim a As Integer = 0 Dim b As Integer = 1 ' Add up numbers. For i As Integer = 0 To n - 1 Dim temp As Integer = a a = b b = temp + b Next Return a End Function Sub Main() ' Display first 10 Fibonacci numbers. For i As Integer = 0 To 10 Console.WriteLine(Fibonacci(i)) Next End Sub End Module
0 1 1 2 3 5 8 13 21 34 55
Function notes. We use a Function, not a Sub, because a return value is required. If we cached the values in a list (a lookup table) this would be faster.
Function
Detail This style of code involves loops. We step forward through an operation with for-loops and index variables.
For Each, For
Detail This style uses method calls. A recursive method calls itself, so we define a method in terms of itself.
Summary. A recursive method can be used to compute Fibonacci numbers: each value is defined as the sum of the previous two. But an iterative solution is often easier to read and understand.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.