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.Arrays;
import java.util.Scanner;

public class Main {
	int[] F;
	boolean[] flag;
	void run() {
		Scanner sc = new Scanner(System.in);
		F = new int[50];
		flag = new boolean[50];
		int ans = fib(sc.nextInt());
		System.out.println(ans);
		sc.close();
	}
	
	int fib(int n) {
		if(n == 0 || n == 1) return 1;
		if(flag[n]) return F[n];
		F[n] = fib(n-1) + fib(n-2);
		flag[n] = true;
		return F[n];
	}

	void debug(Object... o) {
		System.out.println(Arrays.deepToString(o));
	}

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