/**********************************************
For integer a, we have the following continued
fraction:

a + 1/(a + 1/(a + 1/(a + ...

Of course this is an infinite continued fraction,
so we could also define f(a,n) to be the first n
terms, so that:
f(a,0) = a
f(a,1) = a + 1/a
f(a,2) = a + 1/(a + 1/a)
...
Implement f(a,n) recursively.
 **********************************************/
#include <iostream>
#include <iomanip>
using namespace std;

double f(int a, int n);

int main()
{
  // Get integer n, n >= 0
  int n,a;
  cout << "Enter non-negative integer: ";
  cin >> n;
  cout << "Enter value a: ";
  cin >> a;

  cout << "f(" << a << ',' << n << ") = ";
  cout << setprecision(20) << f(a,n) << endl;

  return 0;
}

double f(int a, int n)
{
  if (n == 0)
    return a;
  return a + 1/f(a,n-1);
}