object FibonacciSum {
def sumEvenNumbersInFibonacci(n: Int): Int = {
if (n < 1) return 0
var currentNumber = 0
var nextNumber = 1
var sum = 0
val sequence = scala.collection.mutable.ListBuffer(0, 1)
for (_ <- 0 until (n - 2)) {
val temp = nextNumber
nextNumber = currentNumber + nextNumber
currentNumber = temp
sequence += nextNumber
if (nextNumber % 2 == 0) {
sum += nextNumber
}
}
println(sequence.mkString(" "))
sum
}
def main(args: Array[String]): Unit = {
val limit = 16
val sumResult = sumEvenNumbersInFibonacci(limit)
println(s"Sum = $sumResult")
}
}
/*
run:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
Sum = 798
*/