Java - matrices por columnas

 
Vista:
Imágen de perfil de rocio
Val: 39
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

matrices por columnas

Publicado por rocio (15 intervenciones) el 14/12/2020 15:30:21
hola , una consulta... se me complica recorrer una martiz por columnas por ejemplo
si me dan un ejercicio donde me piden verificar que todas las filas tengan almenos un multiplo de 3 y una columna tiene que ser multiplo de 5
la parte del multiplo de 5 no me estaria saliendo y creo q es por q no se recorrer por columnas

alguna ayuda ?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

matrices por columnas

Publicado por Billy Joel (876 intervenciones) el 14/12/2020 17:05:44
Puedes poner una matriz de ejemplo para estar mas claro?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de rocio
Val: 39
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

matrices por columnas

Publicado por rocio (15 intervenciones) el 14/12/2020 17:23:01
1
2
3
int[] [] matriz={{5,3,10},
		       {2,6,80},
		       {1,9,5}};

en este ejemplo cada fila contiene un multiplo de 3 y la columna 2 es multiplo de 5
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 22
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

matrices por columnas

Publicado por José Ramón (7 intervenciones) el 16/12/2020 02:06:53
Si todos los arrays tienen la misma longitud te podría valer esto para encontrar la primera columna que encuentre completa con múltiplos de 5 si la hay :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// contador de coincidencias con múltiplos de 5
int counter;
// puntero para desplazarte por cada array
RECORRE_FILAS: for (int i = 0; i < matriz[i].length; i++) {
    counter = 0;
    // puntero para recorrer cada numero del array designado por i
    for (int j = 0; j < matriz.length; j++) {
        // con esto voy comparando cada columna. Fíjate en el orden invertido de
        // las variables comparado a recorrerlo linealmente
        if (matriz[j][i] % 5 == 0)
            counter++;
    }
    // salgo del bucle si encuentro una columna completa múltiplo de 5
    if (counter == matriz.length) {
        System.out.println("Hay una columna completa que es multiplo de 5 y es la numero " + i);
        break RECORRE_FILAS;
    }
    // si no la hay al final de recorrer el array...
    if (i == matriz[i].length - 1)
        System.out.println("No hay ninguna columna completa que sea multiplo de 5");
}

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

matrices por columnas

Publicado por Billy Joel (876 intervenciones) el 16/12/2020 05:53:02
Disculpas, me enredé y no pude contestar antes...
El enunciado lo resuelvo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public static boolean lasFilasTienenMultiploDe3(int[][] matriz) {
    boolean[] filas = new boolean[matriz.length];
    for (int i = 0; i < matriz.length; i++) {
        filas[i] = false;
        for (int j = 0; j < matriz.length; j++) {
            if (matriz[i][j] % 3 == 0) {
                filas[i] = true;
                break;
            }
        }
    }
    boolean b = true;
    for (int i = 0; i < filas.length; i++) {
        if (!filas[i]) {
            b = false;
            System.out.println("La fila " + i + " no tiene multiplos de 3");
        }
    }
    return b;
}
 
public static boolean unaColumnaEsMultiploDe5(int[][] matriz) {
    boolean[] columnas = new boolean[matriz[0].length];
    for (int i = 0; i < matriz[0].length; i++) {
        columnas[i] = true;
        for (int j = 0; j < matriz.length; j++) {
            if (matriz[j][i] % 5 != 0) {
                columnas[i] = false;
                break;
            }
            //System.out.println(matriz[j][i]);
        }
        //System.out.println();
        if (columnas[i]) {
            System.out.println("La columna " + i + " es multiplo de 5");
            return true;
        }
    }
    return false;
}

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar