斐波那契数列求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
}