斐波那契数列求n项

2019-05-11  本文已影响0人  一点东风

缓存方式

var fibMemo: [UInt: UInt] = [0: 0, 1: 1]
func fibCache(n: UInt) -> UInt {
    if fibMemo[n] != nil {
        return n
    } else {
        fibMemo[n] = fibCache(n: n - 1) + fibCache(n: n - 2)
        return fibMemo[n]!
    }
}

迭代方式

func fibIteration(n: UInt) -> UInt {
    if (n == 0) {
        return n
    }
    var last: UInt = 0, next: UInt = 1
    for _ in 1..<n {
        (last, next) = (next, last + next)
    }
    return next
}
上一篇 下一篇

猜你喜欢

热点阅读