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:
gracias
puedes hacer uno que tenga métodos
Una pregunta, sabes como hacerlo en python?
Publicar un comentario