Java - Matriz en zigzag

 
Vista:
sin imagen de perfil
Val: 10
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Matriz en zigzag

Publicado por Juan (5 intervenciones) el 21/08/2018 05:19:20
Muy buenas, necesito de su ayuda por favor.
El ejercicio dice que una matriz debe ser sumada en zigzag.
Las condiciones son:
1. Matriz de cualquier tamaño.
2. Entrada por cualquiera de las esquinas (1, 2, 3, 4) esquinas

Ejemplo:

si elijo 1, entonces desde ahi empieza la suma, si elijo 2 entonces desde ahi debe ser la suma.


ejemplo
ejemplo-copiaejemplo-copia

Subo algo que llevo hecho, en si no he podido hacer ese zigzag.

Muchas gracias.
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 kingk
Val: 247
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Matriz en zigzag

Publicado por kingk (108 intervenciones) el 23/08/2018 23:34:45
Hola, aqui te dejo una forma de hacerlo:

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
private void sumarZigzag(int Matriz[][],int fila,int columna)
{
    int x=0,y,temp,limite,limite2;
    int suma=0;
    if(columna==0){
        y=-1;limite=Matriz[0].length-1;
    }else{y=1;limite=0;}
    if(fila==0){
        temp=1;limite2=Matriz.length;
    }else{temp=-1;limite2=-1;}
    while(fila!=limite2)
    {
        if(columna==0 || columna==Matriz[0].length-1){
            y*=-1;
        }
        if(columna==limite){
            x=temp;
        }
        suma+=Matriz[fila][columna];
        System.out.print("["+Matriz[fila][columna]+"]");
        columna+=y;
        fila+=x;
    }
    System.out.println("Suma -> " + suma);
}
En este codigo los parametros fila y columna serian la fila y columna desde la que comenzará la suma en zig zag.

Por ejemplo, de la esquina 1 seria: fila 0 y columna 0, de la esquina 2 seria: fila 0 y columna n(última columna).
Ejemplo:
1
2
3
public void ProcesoSumaCuarta(int Matriz[][], int Fila, int Columna) {
	sumarZigzag(Matriz, Fila-1, Columna-1);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 10
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Matriz en zigzag

Publicado por Juan (5 intervenciones) el 24/08/2018 03:07:59
Muchas gracias compañero, voy a repasar el código y mirar como lo hago con las demás esquinas.
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: 96
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Matriz en zigzag

Publicado por Bruno (43 intervenciones) el 24/08/2018 12:39:15
Colaboro con una parte de la solución:

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
// Jota puede ser 0 (caso de inicio en 0,0) o N-1 (caso de inicio en 0,N-1)
// Matriz definida por v [M] [N]
// Funciona para matrices M=N, M>N y M<N
// Para los casos de inicio de suma 0,M-1 y M,N-1 se debe invertir el ciclo for
int j = 0;
int suma = 0;
boolean incremento = true;
 
if (j == (N-1))
    incremento = false;
 
for (int i = 0; i < M; i++) {
    suma += v[i][j];
 
    if (incremento) {
        j++;
        if (j == N) {
            incremento = false;
            j = N -1;
            j--;
       }
    }
    else {
        j--;
        if (j < 0) {
           incremento = true;
           j = 0;
           j++;
        }
    }
 
}
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

Matriz en zigzag

Publicado por Martin (1 intervención) el 11/10/2019 16:22:32
Hola amigo! Acabo de usar tu codigo y anda casi al 100% ! Sin embargo, cuando coloco 0 no me comienza desde la posicion 0,0. SIno que inicia desde la posicion 0,1. Sabrias que puede ser?
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