#include <iostream>

using namespace std;

int fibonacci(int n);

int main()
{
   int n;
   
   cout << "Please enter a positive integer: ";
   cin >> n;
   
   cout << "*** The value of fibonacci(" << n << ") is " << fibonacci(n) << endl;
   return 0;
}

int fibonacci(int n)
{
   int returnValue, fib1, fib2;
   cout << "Called fibonacci(" << n << ")\n";
   if (n == 1 || n == 2)
      returnValue = 1;
   else
   {
      cout << "   fibonacci(" << n << ") is calling fibonacci(" << n-1 << ")\n";
      fib1 = fibonacci(n - 1);
      
      cout << "   fibonacci(" << n << ") is calling fibonacci(" << n-2 << ")\n";
      fib2 = fibonacci(n - 2);
      
      returnValue = fib1 + fib2;
   }
   cout << "      fibonacci(" << n << ") is returning " << returnValue << endl;
   return returnValue;
}