输入两个整数 n 和 m,输出一个 n 行 m 列的矩阵,将数字 1 到 n×m 按照回字蛇形填充至矩阵中。
具体矩阵形式可参考样例。
输入格式
输入共一行,包含两个整数 n 和 m。
输出格式
输出满足要求的矩阵。
矩阵占 n 行,每行包含 m 个空格隔开的整数。
数据范围
1≤n,m≤100
输入样例:
复制代码
1
23 3
输出样例:
复制代码
1
2
31 2 3 8 9 4 7 6 5
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30#include<iostream> using namespace std; const int N=110; int f[N][N]; int main(){ int m,n; cin>>n>>m; int dx[]={-1 , 0 , 1 , 0}; int dy[]={0 , 1 , 0 , -1}; int x = 0,y = 0,d = 1; for(int i = 1;i <= n * m;i++){ f[x][y] = i; int a = x + dx[d]; int b = y + dy[d]; if(a < 0||a >= n||b < 0||b >= m||f[a][b])//边界判断1.真正意义上的出界2.到了填过数字的位置 { d = (d + 1) % 4;//到了边界转90°方向 a = x + dx[d]; b = y + dy[d]; } x = a,y = b; } for(int i = 0;i < n; i++){ for(int j = 0;j < m; j++){ cout<<f[i][j]<<" "; } cout<<endl; } return 0; }
最后
以上就是苹果书包最近收集整理的关于AcWing756. 蛇形矩阵的全部内容,更多相关AcWing756.内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复