Executing bad excess on receiving a function return array?

Viewed 41

What is the problem with the following function to receive and execute:

 func FibFast(num: Int) -> Array<Int> {
        var fib_arr = [Int](num)
        if num < 1 {
            fib_arr[0] = 0
            return fib_arr
        } else if num < 2 {
            fib_arr[1] = 1
            return fib_arr
        }else {
            for var i = 2; i < num; i++ {
                fib_arr[i] = fib_arr[i-1] + fib_arr[i-2]
            }
            return fib_arr
        }
    }

when I am trying to receive the array like:

var newArray = FibFast(10)

it's producing a bad execution.

2 Answers
Related