Este es un pequeño code que realice para un post del foro.elhacker.net en la sección de Programación-Programación General-Ejercicios donde faltaba por solucionar el siguiente problema:
Cita de ohk: Programar un algoritmo recursivo que permita resolver la siguiente matriz:
Cita de ohk: 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
1 2 2 2 2
1 2 4 4 4
1 2 4 8 8
1 2 4 8 16
Pues bien aca comparto la solución que hice para el problema (Java):
public class MatrizRecursividad { private static int a=0, aux=1, b=0; private static int[][] matriz = new int[6][6]; public static void main(String[] args) { llenarMatriz(matriz, a, b); imprimir(); } public static void llenarMatriz(int matriz[][], int i, int j){ if(j > matriz.length -1){ i++; j=0; aux++; } if(i <matriz.length){ if(i==(aux-1) && j >= (aux-1)){ if(i==0) matriz[i][j] = aux; else matriz[i][j] = matriz[i][i-1]*2; llenarMatriz(matriz, i , j+1); } else{ if(j==0) matriz[i][j] = j+1; else matriz[i][j] = matriz[i-1][j]; llenarMatriz(matriz, i, j+1); } } } public static void imprimir(){ for(int i=0; i< matriz.length; i++){ for(int j=0; j< matriz.length; j++){ System.out.print(matriz[i][j] + " "); } System.out.print("\n"); } } }
Comentarios
*matriz [n*(n+1)]:
1 17 13 9 5
6 2 18 14 10
11 7 3 19 15
16 12 8 4 20
el llenado d esta matriz es asi...(1.1)...(2.2)...(3.3)...(4.4) para luego saltarsee a la siguiente casilla desocupada (1.5)...(2.1)..(3.2)...y asi sucesivamente ???