#include<iostream>
#include<cstdio>
using namespace std;//定义全局变量防止溢出
int res[100][100]
int main()
{
int n,m;
cin>>n>>m;
int dx[]={0,1,0,-1},dy[]={1,0,-1,0};//偏移量
for(int x=0,y=0,d=0,k=1;k<=n*m;k++)
{
res[x][y]=k;
int a=x+dx[d],b=y+dy[d];
if(a<0||a>=n||b<0||b>=m||res[a][b])//判断出界与重复
{//d代表方向
d=(d+1)%4;//顺时针旋转90度;d代表方向
a=x+dx[d],b=y+dy[d];
}
x=a,y=b;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)cout<<res[i][j]<<' ';
cout<<endl;
}
return 0;
}
蛇形矩阵(输入两个整数 n 和 m,输出一个 n 行 m 列的矩阵,将数字 1 到 n×m 按照回字蛇形填充至矩阵中。)
于 2023-09-10 12:19:53 首次发布