Problema con recursividad
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?
#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?
