Páginas

lunes, 24 de febrero de 2014

Unidad 3 Ejercicio 24: matriz latina

Hacer un programa que genere e imprima un cuadrado latino de orden 10 (matriz 10x10). Un cuadradado latino de orden n es aquel en el que la primera fila tiene los nº naturales del 1 a n,  y cada una de las filas restantes de la matriz es igual a su fila superior desplazada una posicion hacia la derecha, entrando por la izquierda el número que se pierde en el desplazamiento. Por ejemplo, un cuadrado latino de orden 5 es:

 1  2  3  4  5
 5  1  2  3  4
 4  5  1  2  3
 3  4  5  1  2
 2  3  4  5  1



/*
* 24. Hacer un programa que genere e imprima un cuadrado latino de orden 10
* (matriz 10x10).
* Un cuadradado latino de orden n es aquel en el que la primera fila tiene
* los nº naturales del 1 a n,  y cada una de las filas restantes de la matriz
* es igual a su fila superior desplazada una posicion hacia la derecha,
* entrando por la izquierda el número que se pierde en el desplazamiento.
* Por ejemplo, un cuadrado latino de orden 5 es:

1  2  3  4  5
5  1  2  3  4
4  5  1  2  3
3  4  5  1  2
2  3  4  5  1

*/
package unidad3ejercicio24;

/**
*
* @author Juan
*/
public class Unidad3Ejercicio24 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int FILAS = 10;
        int COLS = 10;
        int matriz[][]= new int [FILAS][COLS];
       
        for (int fil = 0; fil < FILAS; fil++) {
            for (int col = 0; col < COLS; col++) {
                //si es la primera fila
                if (fil==0) matriz[fil][col]=col+1;
                //si no, si es la primera columna
                else if(col==0) matriz[fil][col]= matriz[fil-1][COLS-1];
                // para el resto de casos
                else matriz[fil][col]= matriz[fil-1][col-1];
            }
        }
       
        for (int i = 0; i < FILAS; i++) {
            for (int j = 0; j < COLS; j++) {
                if (matriz[i][j]<10) System.out.printf("   %d",matriz[i][j]);
                else System.out.printf("  %d",matriz[i][j]);
            }
            System.out.println();
        }
       
   
    }
}

2 comentarios:

Anónimo dijo...

gracias
puedes hacer uno que tenga métodos

Unknown dijo...

Una pregunta, sabes como hacerlo en python?

Publicar un comentario

Muchas gracias por tu comentario, sed respetuosos con los demás.
gracias