Scala: Project Euler: Problem 2
November 22nd, 2009
Problem 2:
object Problem2 {
def main(args : Array[String]) : Unit = {
val max = 4000000
val sum = sumOfFibNumbers(max, isEven, 0, 1, 0)
println(sum)
}
def isEven(x:Int) : Boolean = x % 2 == 0
def sumOfFibNumbers(max:Int, p:(Int => Boolean), n1:Int, n2:Int, sum:Int): Int = {
if(n1 < max) {
if(p(n1)) sumOfFibNumbers(max, p, n2, n1+n2, sum + n1)
else sumOfFibNumbers(max, p, n2, n1+n2, sum)
}
else sum
}
}