模拟
1、4个while循环,分别对应向右,向下,向左,向上走,走一趟为一个周期 2、若在当前方向的下一个位置可以踩,则踩过去
#include<bits/stdc++.h>
using namespace std;
const int N=110;
int a[N][N];
int n,m;
int main(){
cin>>n>>m;
int k=0,x=0,y=-1;
while(k!=n*m){
while(y+1<m&&a[x][y+1]==0){
a[x][y+1]=++k;
y++;
}
while(x+1<n&&a[x+1][y]==0){
a[x+1][y]=++k;
x++;
}
while(y-1>=0&&a[x][y-1]==0){
a[x][y-1]=++k;
y--;
}
while(x-1>=0&&a[x-1][y]==0){
a[x-1][y]=++k;
x--;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cout<<a[i][j]<<" ";
}cout<<endl;
}
}