import java.io.*;
public class 3 {
int [][] ar;
int con;
int n;
public cuadro(int n)
{
con=n;
ar=new int [con][con];
}
void cuadromagico()
{
int ci=((con+1)/2)-1;
int f=0;
ar=new int[con][con];
for(int i=0;i<con*con;i++)
{
if(ar[f][ci]==0){
ar[f][ci]=i+1;
if(f==0){
f=con-1;
}
else{
f--;
}
if(ci==con-1){
ci=0;
}
else{
ci++;
}
}
else{
ci--;
f=f+2;
if(ci<0 && f>con-1){
ci=con-1;
f=1;
}
else{
if(ci<0){
ci=con-1;
}
if(f>con-1){
f=0;
}}
ar[f][ci]=i+1;
f--;
ci++;
if(f<0){
f=con-1;
}
if(ci>con-1){
ci=0;
}
}
}}
public static String esimpar(int num)
{
String res;
num=num%2;
if(num!=0){
res="si";}
else{
res="no";}
return res;
}
void imprimir(){
for(int i=0;i<con;i++){
for(int j=0;j<con;j++){
System.out.print(ar[i][j]+",");
}
System.out.println(" ");}
}
}
class cap8eje2
{
static public void main(String []ars)throws IOException{
BufferedReader leer=new BufferedReader(new InputStreamReader(System.in));
int op=0;
System.out.println("Escribe un número impar entre 3 y 100:");
op=Integer.parseInt(leer.readLine());
if(op>=3 &&op<=100){
if(cuadro.esimpar(op)=="si"){
cuadro magico=new cuadro(op);
magico.cuadromagico();
magico.imprimir();
}else{
System.out.println("El numero es par, imposible continuar") ;}
} else{
System.out.println("EL numero no está dentro del rango 3 al 100");
}
}
}
MUCHAS GRACIAS....