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;
}