Fibonacci. This is an important numeric sequence. In the Fibonacci sequence, each number is the sum of the two previous numbers. This sequence is found in many parts of our world.
With iteration, we can efficient compute this sequence. There is no reason to use recursion (except for education purposes—to learn). In this example we use a simple for-loop with ranges.
Example code. Let us begin. We introduce fibonacci(), which receives one Int and returns another. We use three temporary variables. We use an implicit local constant "_" in our for-loop.
Start Our for-loop uses a half-open range. So it loops from 0 to one minus the final number "n." This is a useful syntax form.
Info We use a temporary constant with the let keyword. This is how we swap the two numbers.
func fibonacci(n: Int) -> Int {
// Some temporary variables.
var a = 0
var b = 1
// Add up numbers to the desired iteration.
for _ in 0..<n {
let temp = a
a = b
b = temp + b
}
return a
}
// Loop over values 0 through 14 inclusive.
for i in 0..<15 {
// Call Fibonacci method.
let result = fibonacci(n: i)
print("Fibonacci \(i) = \(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 notes. The Fibonacci sequence is important. Even in stock trading, investors may use Fibonacci numbers to try to lose even greater amounts of money. Wikipedia has more details.
A review. With a simple iterative method, we can quickly compute Fibonacci numbers. Storing these in another Swift data structure like an array can help retrieve these values faster.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
This page was last updated on Mar 19, 2025 (image).