AcWing 756. 蛇形矩阵
输入两个整数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
代码解读:
到达边界后,说明要换方向了,我们用:
d = (d + 1) % 4;
可以巧妙的让方向向量旋转90°
代码如下:
#include <iostream>
using namespace std;
const int N = 30;
int a[N][N];int dx[] = {1, 0, -1, 0}, dy[] = {0, -1, 0, 1};int main() {int n;cin >> n;int x = 0, y = n - 1, d = 0;for (int i = 1; i <= n * n; i++) {a[x][y] = i;int xx = x + dx[d], yy = y + dy[d];if (xx < 0 || xx >= n || yy < 0 || yy >= n || a[xx][yy]) {d = (d + 1) % 4;xx = x + dx[d], yy = y + dy[d];}x = xx, y = yy;}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cout << a[i][j] << " ";}cout << endl;}return 0;
}
AcWing 756. 蛇形矩阵相关推荐
- Acwing语法基础课第八次课(2)756. 蛇形矩阵748. 数组的右下半部分754. 平方矩阵 II752. 数组的右方区域 746. 数组的左下半部分750. 数组的下方区域
748. 数组的右下半部分 题目 提交记录 讨论 题解 视频讲解 输入一个二维数组 M[12][12],根据输入的要求,求出二维数组的右下半部分元素的平均值或元素的和. 右下半部分是指次对角线下方的部 ...
- Acwing756. 蛇形矩阵:模拟
文章目录 题目分析 题目链接 题目分析 所谓蛇形走位就是 螺旋形走位. 比如 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 模拟:需要知道4个偏移量,同时需要注意是顺时 ...
- wikioi 1160 蛇形矩阵
/*======================================================================== 1160 蛇形矩阵 题目描述 Descriptio ...
- C语言实现上三角蛇形矩阵不用数组,C/C++编程笔记:C++ 嵌套循环,含循环打印及蛇形矩阵实例...
也称为多循环,在一个循环中嵌套使用一个或多个循环. 嵌套循环的基本结构就是在一个循环中,循环体包含了另一个循环的情况.下面我用几个嵌套循环的例子来深入理解嵌套循环. 循环图案打印 分别打印下面三种图案 ...
- 方欣科技算法面试:蛇形矩阵2
1 题目描述 /** * 蛇形矩阵2 * * 输入4 * * 输出 * 1 12 11 10 * 2 13 16 9 * 3 14 15 8 * 4 5 6 7 * ...
- 方欣科技算法题面试:蛇形矩阵
1题目描述 样例输入 4 样例输出 1 3 6 102 5 9 4 8 7 2 java代码 //输入 //输入正整数N(N不大于100) // //输出 //输出一个N行的蛇形矩阵. // //样例 ...
- 用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...
分享几道简单的python打印输出的问题,本质上都是可以将其分解成一个大循环之中有几个小循环. 1.杨辉三角 主要特点: 每个数等于它上方两数之和. 每行数字左右对称,由1开始逐渐变大. 每行端点与结 ...
- C语言实现上三角蛇形矩阵不用数组,蛇形矩阵c语言实现
[问题描述]蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形.如: 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 本题要求根据输入的行数要求,输出对应的一个蛇形上三角矩 ...
- 牛客网--蛇形矩阵(Java)
题目描述 题目说明 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. 样例输入 5 样例输出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 接口说明 原型 void ...
最新文章
- python 亮度一致_Python玩转各种多媒体,视频、音频到图片
- REST WebServices学习
- CentOS 5.5下LVM的分区管理
- 众多Android 开源项目再次推荐,学习不可错过
- 我来重新学习 javascript 的面向对象(part 1)
- odom_out_and_back.cpp
- “软考”遗失试卷全部追回 相关责任人接受审查
- freeldr 如何调用_BootMain的
- macBook Air出现部分乱码问题解决(浏览器、appstore乱码)
- IP地址是什么,618IP代理带你深入了解
- 解决IDEA打断点后,执行代码不会停在断点问题
- Nginx源码阅读:ngx_palloc 内存池
- 程序员如何优雅地写公众号
- 使用CDN后网页无法访问怎么解决
- ERP失败案例:业务流程再造失误
- java基于ssh的旅游系统
- java中字符串和数字变量之间的转换方法
- 【NLP】pyltp工具介绍、安装和使用代码+示例
- [BUUCTF]第七天训练日志
- cadlisp框选打印_我有好多CAD图纸要打印,一张一张的选取打印太麻烦了,请教高手有没有什么好的办法帮小弟一下、!..十分感...
热门文章
- 将一个正方形分成4个大小一样的小正方形,再将其中一个小正方形分成4个小正方形,如此类推,分割n次是几个正方形?
- Android之用setColorFilter在ImageView上面覆盖一层灰色的图层
- Android之给ImageView添加点击效果
- linux之 !!命令
- python赋值语句的一般格式为_[零基础学Python]赋值,简单也不简单
- 安卓设备刷linux发行版,绝对精华,大牛教你在Android系统上安装linux发行版
- python自带的函数有哪些_为什么说 Python 内置函数并不是万能的?
- 这几部经典纪录片,竟然还有人没看过?
- 揭秘神仙高校的课堂!网友跪了:这就是差距啊!
- 看到这一幕,我甚至都想戒烟了。。 | 今日最佳