所以我正在尝试打印一个魔术广场。该程序已完成,但是当它打印幻方时,它会反转。3X3 的输出应如下所示:
8 1 6
3 5 7
4 9 2
但相反,我得到了这个:
4 9 2
3 5 7
8 1 6
我不知道我做错了什么,任何帮助都会很棒。这是我制作幻方并打印它的代码:
//magic square
public static int[][] magicSq(int[][]table,int size){
int [][]magic=new int[size][size];
int row=size-1;
int col=size/2;
magic[row][col]=1;
for(int i=2;i<=size*size;i++){
if(magic[(row+1)%size][(col+1)%size]==0){
row=(row+1)%size;
col=(col+1)%size;
}
else{
row=(row-1+size)%size;
}
magic[row][col]=i;
}
return magic;
}
//print magic sqaure
public static void printSq(int[][]magic,int size){
int constant=0;
for(int r=0;r<size;r++){
for(int c=0;c<size;c++)
System.out.printf("%5d",magic[r][c]);
System.out.println();
constant=constant+magic[r][0];
}
System.out.println("The magic square contant is "+constant);
}