Está en la página 1de 2

Recursividad con matrices cuadradas

class Main {
public static void main(String[] args) {
System.out.println("Hello world!");

int [][] m = {{2, 4, 6, 8}, {1, 3, 5, 7}, {7, 8 ,9, 6}, {3, 6, 5, 7}};

imprimirMatriz(m,0,0);
System.out.println("");
sumaMatriz(m, 0, 0, 0);
sumaDiagonalSecundaria(m, 0, 0, 0);
MatrizIdentidad(m,0,0);
}

//Implemente un algoritmo recursivo para obtener la suma de la diagonal


principal de una matriz cuadrada.
public static void sumaMatriz(int [] [] m, int i, int j, int suma){
if(i < m.length && j < m[i].length){
//System.out.println("i "+i+" j "+ j);
if (i==j)
suma += m[i][j];
if(j==m[i].length -1){
i++;
j=0;
}else{
j++;
}
sumaMatriz(m,i,j, suma);
if (i == m.length)
System.out.println("suma de la diagonal principal = "+suma);
}
}

//Implemente un algoritmo recursivo para obtener la suma de la diagonal


secundaria de una matriz cuadrada.
public static void sumaDiagonalSecundaria(int [] [] m, int i, int j, int
suma){
if(i < m.length && j < m[i].length){
//System.out.println("i "+i+" j "+ j);
if(i+j == m.length-1)
suma += m[i][j];
if(j==m[i].length -1){
i++;
j=0;
}else{
j++;
}
sumaDiagonalSecundaria(m,i,j, suma);
if (i == m.length)
System.out.println("suma de la diagonal secundaria = "+suma);
}
}
//Implemente un algoritmo recursivo para saber si una matriz cuadrada es una
matriz identidad

public static void MatrizIdentidad(int [] [] m, int i, int j){


if(i < m.length && j < m[i].length){
if (i==j){
m[i][j] = m[i][j]/ m[i][j];
}else{
m[i][j]= m[i][j] - 1 * m[i][j];
}
System.out.print(m[i][j]+" ");
if(j==m[i].length-1){
i++;
j=0;
System.out.println("");
}else{
j++;
}
MatrizIdentidad(m,i,j);
}
}

public static void imprimirMatriz(int [] [] m, int i, int j){


System.out.print(m[i][j]+" ");
if(i!= m.length-1 || j != m[i].length-1){
if(j==m[i].length -1){
i++;
j=0;
System.out.println("");
}else{
j++;
}
imprimirMatriz(m,i,j);
}
}
}

También podría gustarte