[C con Clase] Duda sobre Funciones recursivas

Steven Richard Davidson stevenrichard.davidson en gmail.com
Lun Feb 6 17:33:30 CET 2012


Hola Óscar,

2012/2/6 Oscar Aparicio Holgado <pelucheloko en hotmail.com>

>  Hola que tal amigos.
>
> Me empieza a salir humo por las orejas con el tema de las funciones
> recursivas. He leído varios sitios en la web para ver si me aclaro, pero
> hasta el momento os pongo lo que he entendido de esto, para ver si estoy en
> lo cierto o no.
>
> Va el ejemplo sobre un factorial, he tenido que buscar también info sobre
> factoriales ya que no me acuerdo del cole :) hasta ahi bien; va el ejemplo :
>

Sí; básicamente, así es. Ahora bien, creo que te queda la "segunda parte"
de lo que sucede después, que es el retorno, aunque seguramente lo hayas
dado por aludido, también es importante. Esto es,

factorial(5):
  return 5 * factorial(4) <-------------+
                      |                         |
                     V                        |  24
                factorial(4):                |
                  return 4 * factorial(3) <-------------+
                                      |                         |
                                     V                         |  6
                                 factorial(3):                |
                                  return 3 * factorial(2) <-------------+

|                         |
                                                     V
        |
2

                                                factorial(2):                |
                                                  return 2 * factorial(1)
<--+

|              |

V              |  1

factorial(1):
 |

return 1 -------+


Al final, el algoritmo crea algo así,

5 * (4 * (3 * (2 * (1))))


Espero que haya quedado más claro el tema.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20120206/9896b134/attachment.html>


Más información sobre la lista de distribución Cconclase