gpt4 book ai didi

scala - 在 Scala 中生成斐波那契数列

转载 作者:行者123 更新时间:2023-12-03 12:00:15 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is the fastest way to write Fibonacci function in Scala?

(8 个回答)


4年前关闭。




def fibSeq(n: Int): List[Int] = {
var ret = scala.collection.mutable.ListBuffer[Int](1, 2)
while (ret(ret.length - 1) < n) {
val temp = ret(ret.length - 1) + ret(ret.length - 2)
if (temp >= n) {
return ret.toList
}
ret += temp
}
ret.toList
}

所以上面是我使用 Scala 生成斐波那契数列的代码 n .我想知道在 Scala 中是否有更优雅的方法来做到这一点?

最佳答案

我最喜欢的版本是:

def fibs(a: Int = 0, b: Int = 1): Stream[Int] = Stream.cons(a, fibs(b, a+b))

使用默认值,您只需调用 fibs()并获得无限 Stream .

我也认为尽管它是单行的,但它的可读性很高。

如果你只想要第一个 n那么你可以使用 take喜欢 fibs() take n , 如果您需要它作为列表 fibs() take n toList .

关于scala - 在 Scala 中生成斐波那契数列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9864497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com