Cuadrado Mágico
/*
* 27. Un cuadrado mágico de orden N es una matriz cuadrada de dimensiones NxN
* que contiene a los números naturales de 1 a N2, tal que la suma de cualquier
* columna, fila o diagonal es siempre la misma. El algoritmo para construir el
* cuadrado mágico es:
1.- El número 1 se coloca en la casilla central de la primera fila.
2.- Cada número siguiente se coloca en la casilla correspondiente a la fila
* anterior y columna posterior.
3.- Si el número es el siguiente a un múltiplo de N no se aplica la regla 2,
* sino que se coloca en la casilla de la fila posterior en la misma columna.
4.- La fila anterior a la primera es la última.
5.- La columna posterior a la última es la primera.
*/
package unidad3ejercicio27;
import java.util.Scanner;
/**
*
* @author Juan
*/
public class Unidad3Ejercicio27 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leo = new Scanner(System.in);
int col,fil,num;
int matriz[][];
System.out.println("Introduzca tamaño de la matriz");
num=leo.nextInt();
matriz = new int[num][num];
col=(num/2);
fil=0;
for (int i = 1; i <= (num*num); i++) {
matriz[fil][col]=i;
if( (i)%num!=0)
{
--fil;
++col;
}
else ++fil;
if (fil==-1) fil=num-1;
else if (fil==num) fil=0;
if (col==(num)) col=0;
}
for (int i = 0; i < num; i++) {
for (int j = 0; j < num; j++) {
System.out.printf("\t %d",matriz[i][j]);
}
System.out.println();
}
}
}
No hay comentarios:
Publicar un comentario