Problema con recursividad

hanfix
07 de Diciembre del 2008
Estoy empezando con C++. Había un ejercicio con recursividad. Al hacer un pequeño experimento para ver qué salía, no entiendo por qué da ese resultado, y ya llevo un tiempo dándole vueltas. Este es el código:

#include <iostream>
using namespace std;
int f(int n);
int main ()
{
cout << "La funcion es: " << f(5);
cout << "n";
return 0;
}

int f(int n)
{
int answer;
if (n==1) return (1);
cout << "El valor de n es: " << n << "n";
answer = f(n-1);
cout << "Ahora el valor de n es: " << n << "n";
return (answer);

}

El resultado de este código es:

El valor de n es: 5
El valor de n es: 4
El valor de n es: 3
El valor de n es: 2
Ahora el valor de n es: 2
Ahora el valor de n es: 3
Ahora el valor de n es: 4
Ahora el valor de n es: 5
La funcion es: 1

No entiendo por qué ejecuta (n-1) veces el cout << "Ahora el valor de n es:" << n << "n";

El anterior cout está clarísimo...

¿Alguien que me pueda ayudar?