Ejercicios recursivos
0 0 0 0 1
0 0 0 1 2
0 0 1 2 3
0 1 2 3 4
1 2 3 4 5
Solución:
Código1. latino (int fila, int col, int cont, int orden, int mat [] [])
2. {
3. if (fila == 0 && col == 0)
4. mat [0] [0] = 1;
5. else
6. if (fila == col)
7. latino (fila - 1,orden - 1, orden, orden, mat);
8. else
9. {
10. mat [fila] [col] = cont;
11. latino (fila, col - 1, orden + 1, orden, mat);
12. }
13. }
Planteamiento:
Ejercicio 11.Programar un algoritmo recursivo que permita resolver la siguiente matriz:
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
Solución:
Código
1. public class MatrizRecursividad {
2. 3. private static int a=0, aux=1, b=0; //Declaramos los datos necesarios
4. private static int[][] matriz = new int[6][6]; //La matriz debe ser cuadrada
5.
6. public static void main(String[]args) {
7.
8. llenarMatriz(matriz, a, b); //Iniciamos el llamado recursivo
9. imprimir(); //imprimimos la matriz
10.
11. }
12.
13. public static void llenarMatriz(int matriz[][],int i, int j){
14.
15. if(j > matriz.length -1){ //Si llegó a la ultima coluna, reseteamos los datos para la siguiente
16. i++;
17. j=0;
18. aux++;
19. }
20. if(i = (aux-1)){//comprueba que estemos en el lugar adecuado, es decir ira imprimiento escaladamente
23. if(i==0)// si es la primera fila ingresamos aux=1
24. matriz[i][j] = matriz[i][j]=aux;
25. else26. matriz[i][j] = matriz[i][i-1]*2;//ingresamos el valor correspondiente al ultimo de la "escala" *2
27. llenarMatriz(matriz, i , j+1);
28. }
29. else{ //si no, asignamos losvalores anteriores de la escala
30. if(j==0)// comprobamos si es el primer digito a ingresar
31. matriz[i][j] = j+1;
32. else
33. matriz[i][j] = matriz[i-1][j];// asignamos el mismo...
Regístrate para leer el documento completo.