c++ matrix逆时针螺旋

题目

螺旋矩阵是指一个呈螺旋状的矩阵,如一个3*3个螺旋矩阵构造方式如下:

5 4 3
6 1 2
7 8 9

输入一个数n,输出n行n列的螺旋矩阵,每个数字后面一个空格。
输入:3
输入:  

5 4 3
6 1 2
7 8 9

AC代码

#include <bits/stdc++.h>
using namespace std;
int a[101][101];
int main()
{
	memset(a,0,sizeof(a));
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		a[0][i]=a[i][0]=a[n+1][i]=a[i][n+1]=1;
	}
    int x=n,y=n,p=n*n;
    while(p>=1)
    {
    	while (a[x][y]==0) a[x][y--]=p--;
    	x--;y++;
    	while (a[x][y]==0) a[x--][y]=p--;
    	x++;y++;
    	while (a[x][y]==0) a[x][y++]=p--;
    	x++;y--;
    	while (a[x][y]==0) a[x++][y]=p--;
    	x--;y--;
    }
    for(int i=1;i<=n;i++)
    {
    	for(int j=1;j<=n;j++)
    	{
    		printf("%d ",a[i][j]);
    	}
    	printf("\n");
    }
	return 0;
}


posted @ 2019-07-20 12:41  牛大了的牛大  阅读(804)  评论(0编辑  收藏  举报