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.Scanner;

class Main {
    public static void main(String args[]) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		if(N <= 1){
			System.out.println(1);
			return;
        }
        long dp[] = new long[N];
        dp[0] = 1;
        dp[1] = 1;
        System.out.println(fib(dp, N));
    }
    private static long fib(long[] dp, int n){
        long fib1 = dp[n-1] != 0 ? dp[n-1] : fib(dp, n-1);
        long fib2 = dp[n-2] != 0 ? dp[n-2] : fib(dp, n-2);
        dp[n-1] = fib1;
        dp[n-2] = fib2;
        return fib1 + fib2;
    }
}