题目描述
输入两个整数
�
n 和
�
m,输出一个
�
n 行
�
m 列的矩阵,将数字
1
1 到
�
n×
�
m 按照回字蛇形填充至矩阵中。
具体矩阵形式可参考样例。
输入格式
输入共一行,包含两个整数
�
n 和
�
m。
输出格式
输出满足要求的矩阵。 矩阵占
�
n 行,每行包含
�
m个空格隔开的整数。
样例
输入数据 1
3 3
输出数据 1
1 2 3
8 9 4
7 6 5
数据范围
1
≤
�
,
�
≤
100.
1≤n,m≤100.
#include<bits/stdc++.h>
using namespace std;
int a[150][150];
int main()
{
int n,m ,k = 1, x = 1, y = 0;;
cin >> n>>m;
while (k <= n * m)
{
while (y < m && !a[x][y + 1])a[x][++y] = k++;//向右走
while (x < n && !a[x + 1][y])a[++x][y] = k++;//向下走
while (y > 1 && !a[x][y - 1])a[x][--y] = k++;//向左走
while (x > 1 && !a[x - 1][y])a[--x][y] = k++;//向上走
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)cout << a[i][j] << " ";
cout << endl;
}
return 0;
}