Fibonacci Series @annotation.tailrec
object Adventure4 { def fib(n: Int): Int = { @annotation.tailrec def localFib(nth: Int, lastResult: Int, nextToLastResult: Int): Int = { if (nth == 1) { 0 } else if (nth == 2) { 1 } else if (nth <= 3) { lastResult + nextToLastResult } else { localFib(nth - 1, lastResult + nextToLastResult, lastResult) } } localFib(n, 1, 0) } def main(args: Array[String]): Unit = { for (i <- 1 to 30) { println(s"$i : ${fib(i)}") } } } "C:\Program Files\Java\jdk1.8.0_144\bin\java" "-javaagent:D:\IntelliJ IDEA\IntelliJ IDEA 2017.3.2\lib\idea_rt.jar=51963:D:\IntelliJ IDEA\IntelliJ IDEA 2017.3.2\bin" -Dfile