转圈打印矩阵

2011-03-02  李卓华 

输出:
   1   2   3   4   5   6   7   8
  28  29  30  31  32  33  34   9
  27  48  49  50  51  52  35  10
  26  47  60  61  62  53  36  11
  25  46  59  64  63  54  37  12
  24  45  58  57  56  55  38  13
  23  44  43  42  41  40  39  14
  22  21  20  19  18  17  16  15

程序:
public class RotatitonClass {
    public static final int N=8;   //方阵的大小
    public static void main(String[] args) {
        int[][] m = new int[N][N];  //创建N x N的方阵
        rotating(m,N);              //向方阵中填写数值
        printSquareMatrix(m,N);     //显示方阵
       }
    public static void rotating(int[][] m,int num)  //向方向中填写数值
    {
        int k = 1;                  //将要填写的数值
        for (int i = 0; i<=num/2;i++)  //将要填写的圈数
        {
            for (int j=i;j<num-i;j++)  //上方行方向
            {
                m[i][j]=k++;
            }
            
            for (int j=i+1;j<num-i;j++)  //右侧列方向
            {
                m[j][num-i-1]=k++;
            }
            for (int j=num-i-2;j>=i;j--)  //下方行方向
            {
                m[num-i-1][j]=k++;
            }
            for (int j=num-i-2;j>i;j--)  //左侧方向
            {
                m[j][i]=k++;
            }
        }
    }
    public static void printSquareMatrix(int[][] m,int num) //显示方阵
    {
        System.out.println();
        for (int i=0;i<num;i++)
        {
            for (int j=0;j<num;j++)
            {
                System.out.printf("%4d", m[i][j]);
            }
            System.out.println();
        }
    }
}
391°/3914 人阅读/0 条评论 发表评论

登录 后发表评论