15/02/2016, 14:58
|
| | | Fecha de Ingreso: febrero-2015 Ubicación: nullptr
Mensajes: 183
Antigüedad: 9 años, 11 meses Puntos: 27 | |
Respuesta: recursividad Al hacer la llamada recursiva la función NO ha terminado de ejecutarse, lo que ocurre es que una vez llegas al caso que te hace salir de la recursión (a=0) se continúa con la función que te había llamado.
Supón que escribes f(2), entonces lo que ocurre es:
Empieza f(2), escribes 2 en pantalla, se llama f(2-1) = f(1).
Empieza f(1), escribes 1 en pantalla, se llama f(1-1) = f(0)
Empieza f(0), escribes fin, finaliza f(0), por tanto vuelvo a la función que me ha llamado.
Continúo f(1), escribes fin, finaliza f(1), vuelvo a la función que me ha llamado.
Continúo f(2), escribes fin, finaliza f(2), vuelvo a la función que me ha llamado, vuelve al main o a la función que me haya llamado si fuese otra. |