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 Ruby (judge verdict: Accepted)

$memo = {}
def fib(n)
  if n == 0
    1
  elsif n == 1
    1
  else
    a = $memo[n - 1]
    if a.nil?
      a = fib(n - 1)
      $memo[n - 1] = a
    end
    b = $memo[n - 2]
    if b.nil?
      b = fib(n - 2)
      $memo[n - 2] = b
    end
    a + b
  end
end


n = STDIN.gets.to_i
puts fib(n)