相关疑难解决方法(0)

如何在Scala中修复我的Fibonacci流

我定义了一个返回Fibonacci流的函数,如下所示:

def fib:Stream[Int] = {
  Stream.cons(1,
    Stream.cons(2,
      (fib zip fib.tail) map {case (x, y) => println("%s + %s".format(x, y)); x + y}))
}

功能正常但看起来效率低(参见下面的输出)

scala> fib take 5 foreach println
1
2
1 + 2
3
1 + 2
2 + 3
5
1 + 2
1 + 2
2 + 3
3 + 5
8

所以,看起来该函数从一开始就计算出第n个斐波纳契数.这是对的吗?你会怎么解决它?

scala stream fibonacci

8
推荐指数
2
解决办法
1226
查看次数

标签 统计

fibonacci ×1

scala ×1

stream ×1