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.
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.
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.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
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.
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.