public class Magic { /**
 * @param args
 */

public static void main(String[] args) {
// TODO Auto-generated method stub
         int n = 3;
         int mat[][] = new int[n][n];
         int i = 0,j=n/2;
        
         for(int k=1;k<=n*n;k++)
         {
          
          mat[i][j]=k;
          if(k%n==0)
          {
           i=(i+1)%n;
             }
          
          else
          {
          i=(i-1+n)%n;
          j=(j+1)%n;
          }
        
         }
          for(i=0;i<mat.length;i++)
          {
          for(j=0;j<mat[i].length;j++)
          System.out.print(mat[i][j]+"\t");
          System.out.println();
          }
         }
}
       我是初学者,提的问题都是基础,忘大家不要不屑一顾。
       麻烦哪位给点解释,我不到那个算法,赋值初始化怎么完成的,当K=4我就不知道,i,j分别等于多少了?