SACU 各种矩阵构造

来源:互联网 发布:大数据工程师工资最高 编辑:程序博客网 时间:2024/05/09 00:13


正常矩阵:

int a[n][n];   intt = 1;for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {a[i][j] = t++;}}

S形矩阵:

int a[n][n];   intt = 1;for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {if(i%2==0)a[i][j]=t++;        else            a[i][n-1-j]=t++;}}

Z形矩阵:

    int a[n][n];                           int  t = 1;    int i = 0;    int j = 0;       //每次调用此函数必须用memset(a,0,sizeof(a));    a[0][0] = t++;    for (; t <= n * n;)    {        if (i < n && i - 1 >= 0 && j + 1 < n && a[i - 1][j + 1] == 0)        {            a[i - 1][j + 1] = t++;            i -= 1;            j += 1;        }        else if (i + 1 < n && j < n && j - 1 >= 0 && a[i + 1][j - 1] == 0)        {            a[i + 1][j - 1] = t++;            i += 1;            j -= 1;        }                                                 else if (j == 0 && i + 1 < n)                    {                                                     a[i + 1][j] = t++;            i += 1;        }        else if (i == 0 && j + 1 < n)        {            a[i][j + 1] = t++;            j += 1;        }        else if (i == n - 1 && j + 1 < n)        {            a[i][j + 1] = t++;            j += 1;        }        else if (j == n - 1 && i + 1 < n)        {            a[i + 1][j] = t++;            i += 1;        }    }



蛇形矩阵(和Z形差不多):

 int count=1;    int i,j,n;    int k=0;    while(count<=n*(n+1)/2)    {        for(i=k,j=0;i>=0,j<=k;i--,j++)        {            a[i][j]=count++;        }        k++;    }



0 0
原创粉丝点击