AcWing 756. 蛇形矩阵
原题链接
简单
#include <iostream>
using namespace std;
int main()
{
int m[100][100];
int a=0,b=0;
cin>>a>>b;
int sum=1;
int top=0;
int bottom=a-1;
int left=0;
int right=b-1;
while(sum<=a*b)
{
for(int i=left;i<=right;i++)
{
m[top][i]=sum;
sum++;
}
for(int i=top+1;i<=bottom;i++)
{
m[i][right]=sum;
sum++;
}
for(int i=right-1;i>=left&&bottom>top;i--)
{
m[bottom][i]=sum;
sum++;
}
for(int i=bottom-1;i>top&&left<right;i--)
{
m[i][left]=sum;
sum++;
}
top++;left++;bottom--;right--;
}
for(int i=0;i<a;i++)
{
for(int j=0;j<b;j++)
{
cout<<m[i][j]<<" ";
}
cout<<endl;
}
return 0;
}