#include <stdio.h>

int fibo1(int n)
{
    if (n<=1) return 1;
    else return fibo1(n-1)+fibo1(n-2);
}

int _aux_fib(int n, int a, int b)
{
    if (n==0) return a;
    else return _aux_fib(n-1, b, a+b);
}

int fibo2(int n)
{
    return _aux_fib(n, 1, 1);
}

main()
{
    int i;
    for(i=0; i<45; i++)
        printf("F1[%d]=%d\n",i,fibo1(i));
    printf("=============\n");
    for(i=0; i<45; i++)
        printf("F2[%d]=%d\n",i,fibo2(i));
    printf("====fim======\n");
    getchar(); getchar();
}
        
