螺旋矩阵

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了螺旋矩阵相关的知识,希望对你有一定的参考价值。

1   2   3   4   5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

给定正整数N,输出如上所示N*N矩阵。

代码:

#include<stdio.h>
#include<iostream>
using namespace std;
int m[100][100];
int main()
{
    int N;
    int cnt;
    while(scanf("%d",&N)!=EOF)
    {
        cnt = 0;
        for(int i=0; i<N/2; ++i)
        {
            for(int j=i; j<N-1-i; ++j)
                m[i][j]=++cnt;
            for(int j=i; j<N-1-i; ++j)
                m[j][N-1-i] = ++cnt;
            for(int j=N-1-i; j>i; --j)
                m[N-1-i][j] = ++cnt;
            for(int j=N-1-i; j>i; --j)
                m[j][i] = ++cnt;
        }
        if(N%2==1)
            m[N/2][N/2] = ++cnt;
        for(int i=0; i<N; ++i)
        {
            for(int j=0; j<N; ++j)
                printf("%d ",m[i][j]);
            printf("\n");
        }
    }
    return 0;
}


 

以上是关于螺旋矩阵的主要内容,如果未能解决你的问题,请参考以下文章

PAT 1050. 螺旋矩阵

求螺旋矩阵指定坐标的值

2014螺旋矩阵

螺旋矩阵

螺旋矩阵

Java实现螺旋矩阵