【BASE】Fibonacci sequence by Swift

发布于:2019-03-02 16:15,阅读数:495,点赞数:0


# 问题 实现斐波那契数列。 # 分析过程 - 输入:要求的斐波那契数列的序号。 - 输出:斐波那契数列值。 - 思路:需考虑大数以及动态规划节省时间,可以利用 Swift 的迭代器来轻松实现。 # 解决方法 - 大数`BigNumber`结构定义:[【Big Number by Swift】](https://blog.yuusann.com/corpus/article/19027) ```swift // Iterator struct FibIterator: IteratorProtocol { typealias Element = BigNumber var a = BigNumber.init(number: 0) var b = BigNumber.init(number: 1) mutating func next() -> BigNumber? { defer { (a, b) = (a + b, a) } return a } } // Sequnce struct FibSequence: Sequence { typealias Iterator = FibIterator func makeIterator() -> Iterator { return FibIterator.init() } } // 输出斐波那契数列前10000个 let arr = Array.init(FibSequence.init().prefix(10000)) arr[8181].printSelf() ```


评论:0条


返回列表

返回主页