Recursión M. en C. Erika Vilches Los programas que hemos visto hasta ahora están estructurados como métodos que se llaman unos a otros de manera disciplinada y jerárquica. Para algunos problemas, sin embargo, es útil tener un método que se llame a si mismo. Un método con esas características es llamado método recursivo Un método recursivo puede ser llamado directamente o indirectamente a través de otro método. Cuando se llama a un método recursivo para resolver un problema, el método es capaz de resolver únicamente el caso más sencillo, o el caso base. Si el método es llamado con el caso base, el método regresa un resultado. Si el método es llamado con un problema más complejo, el método divide el problema en dos piezas conceptuales Una pieza que el método sabe como hacer Una pieza que el método no sabe como hacer (versión más pequeña del problema original) Para ese segundo caso, se el método se llama a si mismo nuevamente para trabajar en el problema mas pequeño → Llamada recursiva o paso recursivo El paso recursivo normalmente contiene un enunciado return, porque su resultado se combinará con la porción del problema que el método sabe resolver para formar un resultado que será devuelto al caller original. El paso recursivo se ejecuta mientras la llamada original al método aún esta activa (no ha terminado de ejecutar). El paso recursivo puede resultar en muchas mas llamadas recursivas mientras el método divide cada nuevo subproblema en dos piezas conceptuales. Para que termine eventualmente la recursión, cada vez que el método se llama a si mismo con una versión mas simple del problema original, la secuencia de problemas cada vez mas pequeños debe converger en un caso base. En ese punto, el método reconoce el caso base y regresa un resultado a la copia previa del método. Una secuencia de returns sucede hasta que la llamada original al método regresa el resultado final. Solución recursiva al problema de factorial