概述
输入两个整数 n 和 m,输出一个 n 行 m 列的矩阵,将数字 1 到 n×m 按照回字蛇形填充至矩阵中。
具体矩阵形式可参考样例。
输入格式
输入共一行,包含两个整数 n 和 m。
输出格式
输出满足要求的矩阵。
矩阵占 n 行,每行包含 m 个空格隔开的整数。
数据范围
1≤n,m≤100
输入样例:
3 3
输出样例:
1 2 3
8 9 4
7 6 5
#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. 蛇形矩阵所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复