AcWing 756. 蛇形矩阵
原题链接
中等
作者:
Charles__
,
2020-03-01 22:58:31
,
所有人可见
,
阅读 615
C++ 代码
#include<iostream>
using namespace std;
int dx[] = { 0 , 1 , 0 ,-1};
int dy[] = { 1 , 0 , -1 ,0};
int k=0;
int n,m;
int map[101][101];
int main()
{
cin>>n>>m;
int x=0,y=-1;
for(int i = 1 ; i <= m*n ; i++)
{
//转向
if(map[x+dx[k]][y+dy[k]]!=0||x+dx[k]>=n||y+dy[k]>=m||x+dx[k]<0||y+dy[k]<0)
k=(k+1)%4;
x+=dx[k],y+=dy[k];
map[x][y] = i;
}
for(int i = 0 ; i<n;i++)
{
for(int j=0;j<m;j++)
cout<<map[i][j]<<" ";
cout<<endl;
}
}