Fibonacci. This sequence of numbers occurs in nature, and has many uses, even in finance. In a Fibonacci sequence, each number is equal to the previous two numbers added together.
With an iterative method, we quickly generate the Fibonacci sequence. Examples sometimes use recursion, but this has no practical benefit.
Example method. We introduce the func fibonacci(), which receives an int and returns another int. Fibonacci uses three variables—these store the result and help with addition.
Return We return the Fibonacci number at the designated position. This is an int value.
package main
import "fmt"
func fibonacci(n int) int {
a := 0
b := 1
// Iterate until desired position in sequence.
for i := 0; i < n; i++ {
// Use temporary variable to swap values.
temp := a
a = b
b = temp + a
}
return a
}
func main() {
// Display first 15 Fibonacci numbers.
for n := 0; n < 15; n++ {
// Compute number.
result := fibonacci(n)
fmt.Printf("Fibonacci %v = %v\n", n, result)
}
}Fibonacci 0 = 0
Fibonacci 1 = 1
Fibonacci 2 = 1
Fibonacci 3 = 2
Fibonacci 4 = 3
Fibonacci 5 = 5
Fibonacci 6 = 8
Fibonacci 7 = 13
Fibonacci 8 = 21
Fibonacci 9 = 34
Fibonacci 10 = 55
Fibonacci 11 = 89
Fibonacci 12 = 144
Fibonacci 13 = 233
Fibonacci 14 = 377
Some comments. This code is not optimal. The method computes a Fibonacci number at a position in the sequence. But for repeated reuse, memoization (caching) would be better.
Tip To memoize this sequence, store the Fibonacci numbers in an array or slice. Then access those values when needed.
Detail Using a cache in this situation is far faster, especially with larger positions within the sequence.
A summary. Fibonacci numbers are easily computed in modern programming languages. This task helps us learn about numbers and programming languages. This makes more complex tasks easier.
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.