Ciao a tutti.
Sto cercando di rifare un po' di vecchi esami per preparare il mio e mi sono imbattuto in un programmino che non riesco proprio a capire.

Dovrei dire cosa visualizza a schermo e dare un nome alle due funzioni (in particolare capire cosa fanno matematicamente)...

Il programma è il seguente:

codice:
#include <iostream>
using namespace std;

int f(int x, int y)
{
    if(y <= 0) return x;
    return f(x+1, y-1);
}

int g(int x, int y)
{
    if(y <= 1) return x;
    return f(x, g(x, y-1));
}

int main ()
{
    cout << g(6, 3) << endl;

    return 0;
}
Qualcuno può aiutarmi please?
GRazie.