#include <iostream>
#include <string.h>
using namespace std;
int n,m;
bool st[210][210];
int arr[210][210];
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>arr[i][j];
}
}
int dx[]={1,0,-1,0},dy[]={0,1,0,-1}; //4个方向的偏移量
for(int x=0,y=0,d=0,k=1;k<=n*m;k++)
{
if(x==0&&y==0) cout<<arr[x][y];
else cout<<" "<<arr[x][y];
st[x][y]=1;
int a=x+dx[d],b=y+dy[d]; //走一步
if(a<0||a>=n||b<0||b>=m||st[a][b]==1) //越界或者走的这个点已经走过了
{
d=(d+1)%4; //换方向
a=x+dx[d],b=y+dy[d]; //走一步
}
x=a,y=b; //当前走到的位置
}
return 0;
}
//蛇形矩阵!!
5.回型取数
最新推荐文章于 2024-07-13 19:27:27 发布