Vous êtes sur la page 1sur 3

Ejercicios Recursividad y Memoria Dinámica

1. Construya una función recursiva que convierta un número decimal en una cadena que
represente el valor del número en hexadecimal (base 16).
2. Escriba una función recursiva que reciba como parámetro una matriz de enteros y la
llene de la siguiente manera:

Ejemplo (n=5):
1 1 1 1 1
1 2 2 2 2
1 2 4 4 4
1 2 4 8 8
1 2 4 8 16
Utilizar memoria dinámica para crear la matriz.
3. Escriba una función recursiva que reciba como parámetro una matriz de enteros y la
llene de la siguiente manera:

Ejemplo (n=5):

1 2 3 4 5
2 1 2 3 4
3 2 1 2 3
4 3 2 1 2
5 4 3 2 1
Utilizar memoria dinámica para crear la matriz.
4. Escriba un programa en C++ que lea desde teclado dos enteros N y M (N>M) para
crear la siguiente estructura en memoria dinámica:
Ej: N=5 y M=3

1 1 1 1 1

1 2 2 2 2

1 2 3 3 3

1 2 3

1 2 3

Nota.- Implementar los siguientes procedimientos:


a. Procedimiento que reciba como parámetro dos enteros N y M para crear la
estructura utilizando memoria dinámica.
b. Procedimiento recursivo que reciba como parámetro la estructura creada en el
punto anterior y la llene de la manera descrita en el ejemplo
5. Escriba un programa en C++ que lea desde teclado un número entero impar N para
crear la siguiente estructura en memoria dinámica y llenarla como indica el ejemplo:
Ej: N=5

1 2 3
2 1
3
2 1
1 2 3

Nota.- Implementar los siguientes procedimientos:


a. Procedimiento que reciba como parámetro un entero impar N para crear la
estructura utilizando memoria dinámica.
b. Procedimiento recursivo que reciba como parámetro la estructura creada en el
punto anterior y la llene de la manera descrita en el ejemplo
6. Una matriz de enteros representa un mapa de islas, cada isla es una agrupación de
celdas con valor igual a 1, cada celda de isla es adyacente horizontal y/o verticalmente
a una celda del mismo grupo. Una isla está delimitada, horizontal y verticalmente, por
celdas con valor 0 o por los límites del mapa. Ejemplo:

0 1 0 0 0 0
1 1 1 0 0 0
0 0 0 1 0 0
0 0 1 0 1 1
1 1 0 0 1 0
0 1 0 0 1 1

Escriba un programa que dado un mapa representado por una matriz de tamaño NxM,
imprima las islas encontradas en el siguiente formato:
Isla 1: (0,1) (1,0) (1,1) (1,2)
Isla 2: (2,3)
Isla 3: (3,2)
Isla 4: (3,4) (3,5) (4,4) (5,4) (5,5)
Isla 5: (4,0) (4,1) (5,1)
Nota.- Toda función o procedimiento a ser implementado debe ser recursivo.
7. Escribir una función recursiva que retorne el número de ’#’ unidos en una malla. Un
’#’ está unido a otro ’#’ si son vecinos horizontal, vertical o diagonalmente.

# # #

# # # #

# # # # #

# #
8. Problema de las 8 reinas: Se trata de buscar la forma de colocar 8 reinas en un
tablero de ajedrez de forma que ninguna de ellas amenace ni se vea amenazada por
otra reina.
Algoritmo:

 Colocar la reina i en la primera casilla válida de la fila i


 Si una reina no puede llegar a colocarse en ninguna casilla, se vuelve atrás y se
cambia la posición de la reina i-1
 Intentar colocar las reinas restantes en las filas que quedan.

9. Escribir un procedimiento recursivo que reciba como parámetro una matriz de enteros
de tamaño NxN y la llene de la siguiente manera:
a. Ej: N=5
1 2 3 4 5

2 3 4 5 6

3 4 5 6 7

4 5 6 7 8

5 6 7 8 9

10. Escribir un procedimiento recursivo que marque el camino de salida dentro un


laberinto, el procedimiento recibe como parámetros un matriz de caracteres que
representa un laberinto y dos coordenadas que representan el inicio y la salida.

Vous aimerez peut-être aussi