题目描述
输入两个整数 nn 和 mm,输出一个 nn 行 mm 列的矩阵,将数字 11 到 nn×mm 按照回字蛇形填充至矩阵中。
具体矩阵形式可参考样例。
输入格式
输入共一行,包含两个整数 nn 和 mm。
输出格式
输出满足要求的矩阵。 矩阵占 nn 行,每行包含 mm个空格隔开的整数。
样例
输入数据 1
3 3
Copy
输出数据 1
1 2 3
8 9 4
7 6 5
Copy
数据范围
1≤n,m≤100.1≤n,m≤100.
//他帮我对齐了,算了懒得改。
#include<iostream>
using namespace std;
int main() {
int n,m;
cin >> n >> m;
int a[111][111]={0};
int l=0;
int ans=1,shu=n*m;
for(int i=1;i<=(n+1)/2;i++){ //看要转多少个圈,(可看横坐标等于纵坐标有多少个
for(int j=i;j<=m-l;j++){
a[i][j]=ans //输入上面
ans++;
if(j==m-l){
for(int you=i+1;you<=n-l;you++){ //输入右边
a[you][j]=ans;
ans++;
if(you==n-l){
for(int xia=m-l-1;xia>=i;xia--){ //输入下边
a[n-l][xia]=ans;
ans++;
if(xia==i){
for(int zuo=n-l-1;zuo>=i+1;zuo--){ //输入左边
a[zuo][i]=ans;
ans++;
}
}
}
}
}
}
}
l++;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}