Esta implementación está hecha desde arriba ("top-down" en inglés), solicitando primero la solución del problema y calculando recursivamente las soluciones a los subproblemas.