#include<stdio.h>
#include<stdlib.h>

int vetor[46]; /* O 46o numero da sequencia de Fib eh o maximo
                  que pode ser armazenado em um int */
int F(int n) {
    if (n == 0) return vetor[0] = 0;
    if (n == 1) return vetor[1] = 1;
    if (n > 1) {
        if(vetor[n] !=0)
            return vetor[n];
        return vetor[n] = F(n-1) + F(n-2);
    }
}

int main(void)
{
    int n;

    printf("\nDigite o valor de n: ");
    scanf("%d", &n);

    printf("\nO %d-esimo termo de Fibonacci eh: %d\n", n, F(n));

    system("pause");
    return 0;
}