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

import java.util.*;

class Main {
    public static void main(String[] args) {
        new Main().main();
    }

    Map<Integer, Integer> fibCache;

    public void main() {
        this.fibCache = new HashMap<>();

        int n = new Scanner(System.in).nextInt();
        System.out.println(this.fib(n));
    }

    private int fib(int n) {
        if (this.fibCache.containsKey(n)) {
            return this.fibCache.get(n);
        }

        int result;
        if (n <= 1) {
            result = 1;
        } else {
            result = this.fib(n - 1) + this.fib(n - 2);
        }
        this.fibCache.put(n, result);
        return result;
    }
}