用Scala计算出斐波那切数列前五项,去掉重复项并计算各项之和。F(n)=F(n-1)+F(n-2),n≥2,F(0)=0,F(1)=1
时间: 2024-09-15 12:04:02 浏览: 71
tutorial-sparkpi-scala-akka
Scala是一种多范式编程语言,支持面向对象编程和函数式编程,非常适合实现数学问题的解决方案。下面是一个使用Scala编写的计算斐波那契数列前五项,去掉重复项并计算各项之和的示例代码:
```scala
object Fibonacci {
def main(args: Array[String]): Unit = {
val fibs = Stream.iterate((0, 1)) { case (a, b) => (b, a + b) }.map(_._1).take(5)
val distinctFibs = fibs.distinct
val sum = distinctFibs.sum
println(s"Fibonacci series (first five): $fibs")
println(s"Distinct Fibonacci numbers: $distinctFibs")
println(s"Sum of distinct Fibonacci numbers: $sum")
}
}
```
在这段代码中:
- 使用`Stream.iterate`函数创建了一个无限的斐波那契数列流,每次迭代生成一个新的数对,包含前两个斐波那契数。
- `map(_._1)`用于提取数对中的第一个元素,即当前的斐波那契数。
- `take(5)`用于获取前五个斐波那契数。
- `distinct`方法用于去除可能产生的重复项。
- `sum`方法用于计算所有元素的总和。
执行上述代码将输出斐波那契数列的前五项,去掉重复项后的结果以及这些数的总和。由于斐波那契数列定义特性,前五项实际上不会有重复项,因此结果中的distinctFibs与fibs相同。
阅读全文