AcWing 756. 蛇形矩阵
原题链接
简单
蛇形矩阵—模拟
#include<iostream>
#include<cstdio>
using namespace std;
const int N =101;
int num[N][N];
int n,m;
// int up,down,left,right;
int main(){
cin>>n>>m;
int up=0;
int down=n-1;
int left=0;
int right=m-1;
int k=1;
while(k<=n*m){
for(int i=left;i<=right;i++){
num[up][i]=k++;
}
if(k>n*m) break;
up++;
for(int i=up;i<=down;i++){
num[i][right]=k++;
}
if(k>n*m) break;
right--;
for(int i=right;i>=left;i--){
num[down][i]=k++;
}
if(k>n*m) break;
down--;
for(int i=down;i>=up;i--){
num[i][left]=k++;
}
if(k>n*m) break;
left++;
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cout<<num[i][j]<<' ';
}
cout<<endl;
}
return 0;
}