Professional Documents
Culture Documents
Tema 5. Recursividad
Gabriel Navarro
(email: gnavarro@ugr.es)
Recursividad: Introduccin
La recursividad es una herramienta muy potente tanto en
matemticas como en programacin. Permite definir
conceptos y algoritmos de una forma simple. Por ejemplo:
Factorial (n)=
1 ; si n=1
nFactorial (n1); si n>0
Recursividad: Introduccin
Ejemplo de clculo recursivo de 3!:
Devuelve 6
Factorial(3)= 3*Factorial(2)
Devuelve 2
Factorial(2)= 2*Factorial(1)
Devuelve 1
Factorial(1)= 1
Recursividad: Ejemplos
Ejemplo de clculo recursivo de varias funciones conocidas:
Suma(a , b)=
a ; si b=0
1+Suma( a , b1) ; si b>0
Multiplica(a , b)=
1 ; si b=0
a+Multiplica(a , b1) ; si b>0
{
{
Maximo(V , n)=
v [0]; si n=0
max(V [n] maximo(V , n1)); si n>0
ElevarA( x , n)=
1 ; si n=0
xElevarA(x , n1) si n>0
Fibonacci(n)=
1 ; si n=0,1
Fibonacci (n1)+Fibonacci (n2) ; si n>1
Recursividad: Ejercicio
Averiguar qu hace este algoritmo
Recursividad: Ejercicio
Recursividad: Ejercicio
BLR(v,4,5);
3
3
Recursividad: Equivalencia
(factorialnorecursivo.cpp)
Toda funcin recursiva se puede implementar con una funcin
no recursiva (iterativa) equivalente. Ejemplo:
Torres de Hanoi
Bibliografa recomendada