sábado, 23 de junio de 2012

Problemas Propuestos de Recursividad


1)             Elaborar un algoritmo recursivo que determine si un número es positivo.
2)             Elaborar un algoritmo recursivo que permita hacer la división por restas sucesivas.
3)             Elaborar un algoritmo recursivo que permita sumar los elementos de un vector.
4)             Elaborar un algoritmo recursivo que permita multiplicar los elementos de un vector.
5)             Utilizar una función recursiva para calcular la suma:  1 + 2 + 3 + … +(n – 1) + n.
6)             Elaborar un algoritmo recursivo que permita invertir un número. Ejemplo: Entrada: 123 Salida: 321.
7)             Elaborar un algoritmo recursivo que permita sumar los dígitos de un número. Ejemplo: Entrada: 123 Resultado:6
8)             Programar un algoritmo recursivo que permita sumar los elementos de una matriz.
9)             Elaborar un algoritmo recursivo que calcule el Máximo Común Divisor de dos números
10)         Escribir un procedimiento recursivo que liste todos los pares de enteros positivos que son la suma de un número dado. Por ejemplo:  7 = 6 + 1,  5 + 2,  4 + 3  (no se pueden repetir las parejas 6 + 1 y 1 + 6).
11)         Utilizar una función recursiva que permita calcular la combinatoria de n elementos tomados en grupos de k.
12)         Utilizar una función recursiva que produzca la suma de los dígitos de un valor entero no negativo.
13)         Utilizar un procedimiento recursivo que permita contar las palabras de una frase.
14)         Utilizar una función recursiva para determinar si una cadena de caracteres ingresada por teclado es políndroma (descrito en el problema propuesto 13 del capitulo 6: Cadenas).
15)         Resolver un procedimiento recursivo que permita el cálculo de la función de Ackerman A(m,n):

 
16)         Resolver recursivamente el proceso de ordenamiento por el método de selección (descrito en el párrafo 2.2 y desarrollado en el problema ilustrativo 3 del capitulo 8: Ordenamiento y busqueda). Tener en cuenta que el ordenamiento por selección busca en un arreglo el elemento más pequeño, el cual se intercambia con el primero del arreglo. El proceso se repite con el subarreglo que comienza en el segundo elemento del arreglo. Cada pase por el arreglo da como resultado la colocación de un elemento en el lugar correcto. El desempeño de este ordenamiento es comparable con el ordenamiento de burbuja: para un arreglo de n elementos, se necesita hacer n-1 pases y por cada subarreglo, hay que hacer n-1 comparaciones para encontrar el valor más pequeño. Cuando el subarreglo que se esta procesando sólo contiene un elemento, el arreglo está ordenado.
17)         Utilizar un procedimiento recursivo que ordene una lista de números enteros en orden decreciente por el método de inserción (descrito en el párrafo 2.3 y desarrollado en el problema ilustrativo 4 del capitulo 8: Ordenamiento y busqueda). El algoritmo utilizado consiste en:

a)             Buscar el elemento más pequeño y situarlo en primera posición.
b)             Clasificar el resto de la lista.

18)         Resolver recursivamente el problema de la búsqueda lineal en un arreglo. La función deberá recibir como argumentos un arreglo de enteros y su tamaño. Si se encuentra la clave de búsqueda, devuelva el subíndice del arreglo; de otro modo, devuelva –1.
19)         Encontrar una fórmula para el número de veces que un anillo se transfiere de un alambre al otro en la Torre de Hanoi con n anillos.

No hay comentarios:

Publicar un comentario