01 Practica Recursividad
01 Practica Recursividad
01 Practica Recursividad
FACULTAD DE CIENCIAS
ESCUELA DE COMPUTACIÓN
ALGORITMOS Y ESTRUCTURAS DE DATOS
PRÁCTICA DE RECURSIVIDAD
3) Para un mismo problema, ¿las soluciones iterativas son mejores que las soluciones recursivas?
4) Elabore una función recursiva la cual dado un arreglo de caracteres que forman una palabra retorne
verdadero si ésta es capicúa. Ejemplos palabras capicúas: reconocer, oro, arepera.
5) Realice una traza de la ejecución de la función Fibonacci para n=5. ¿Cuántas veces se calcula
Fibonacci(3)?
Y la paridad de cualquier otro entero positivo es la opuesta que la del entero anterior, desarrolle las
funciones lógicas, mutuamente recursivas, Es Par y Es Impar, que se complementen a la hora de
averiguar la paridad de un entero positivo.
10) Dados dos números enteros positivos m y n, tal que m > n, encontrar su máximo común divisor (es
decir, el mayor entero positivo que divide a ambos):
Dividir m por n para obtener el resto r (0 £ r < n).
Si r = 0, el MCD es n.
Si no, el máximo común divisor es MCD(n,r).
11) Escribir un programa recursivo que ordene un arreglo de enteros por el método de Mezcla: se va
dividiendo el arreglo sucesivamente en dos mitades y cuando la longitud de cada mitad sea 2 se
comparan los elementos y se ordenan. Después de ordenadas las dos mitades, ambas se mezclan
ordenadamente en un solo arreglo aprovechando el hecho de que las mitades ya están ordenadas
12) Dado un arreglo de N números enteros, diseñar algoritmos recursivos que calculen:
El mayor elemento del arreglo.
La suma de todos los elementos del arreglo.
La suma de los k primeros elementos del arreglo.
La media de todos los elementos del arreglo.
Verificar si el arreglo está ordenado.
Verificar si la suma de la primera mitad del arreglo es igual a la segunda mitad
13) Elabore un algoritmo recursivo que determine si existe una suma sucesiva de números igual a K, por
ejemplo tenemos el arreglo {1,2,3,4,5,6} y queremos saber si existe la suma sucesiva que de 9, en este
caso existe pues es 4+5=9, si queremos la suma de 7, esta sería 3+4=7, si queremos la suma de 10,
1+2+3+4=10, pero si queremos el 8, es imposible, puesto que el 2 y el 6 no son sucesivos.
14) Diseñe e implemente un algoritmo que imprima todas las posibles descomposiciones de un número
natural como suma de números menores que él.
15) Implemente una función recursiva que permita calcular el número de combinaciones de n elementos
tomados de m en m. Realice dos versiones de la implementación iterativa, una aplicando la fórmula y
otra utilizando una matriz auxiliar (en la que se vaya construyendo el triángulo de Pascal).
int f(int x)
{
if (x >100)
{
return (x-10);
}
else
{
return(f(f(x+11)));
}
}
17) Desarrolle un algoritmo recursivo que resuelva el famoso problema del juego de las Torres de Hanoi,
este juego consiste en tres torres con anillos ordenados de mayor a menor tamaño. Se deben pasar los
anillos de la primera a la tercera torre y quedar en el mismo orden. Los anillos siempre se deben ubicar
de mayor a menor teniendo como base de la torre el mayor anillo.
18) Calcular el elemento i,j (j<=i) del triángulo de pascal sin la necesidad de construir la matriz.