object Fibonacci {
var F = Map(0 -> 0,
1 -> 1,
2 -> 1)
}
class Fibonacci {
def num(n : Int): Int = {
if (! Fibonacci.F.contains(n) ) {
var k = 3
while ( Fibonacci.F.contains(k) ) {
k += 1
}
while ( k <= n ) {
Fibonacci.F += (k -> (Fibonacci.F(k-1) +
Fibonacci.F(k-2)));
k += 1
}
}
return Fibonacci.F(n)
}
}
var A = new Fibonacci
println("fib(12)="+A.num(12))
println("fib(6)="+A.num(6))
println("fib(4)="+A.num(4))