Problem:
MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"], ["\\(","\\)"]], processEscapes: true }});

Fibonacci Number

Write a program which prints $n$-th fibonacci number for a given integer $n$. The $n$-th fibonacci number is defined by the following recursive formula:

\begin{equation*}
fib(n)= \left \{
\begin{array}{ll}
1　 & (n = 0) \\
1　 & (n = 1) \\
fib(n - 1) + fib(n - 2) & \\
\end{array}
\right.
\end{equation*}

Input

An integer $n$ is given.

output

Print the $n$-th fibonacci number in a line.

Constraints

$0 \leq n \leq 44$

Sample Input 1

3

Sample Output 1

3

Solution in Scala (judge verdict: Accepted)

import scala.io.StdIn

object Main{
  def fib(prev: (Long, Long), pos: Int)(n: Int): Long = {
    if(n < 2) 1
    else if(pos >= n) prev._1 + prev._2
    else fib((prev._2, prev._1+prev._2), pos+1)(n)
  }

  def main(args: Array[String]) {
    val n = StdIn.readInt()
    println(fib((1,1), 2)(n))
    //(0 to 10).map(fib((1,1), 2)).foreach(println)
  }
}