输入两个整数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. 蛇形矩阵相关推荐

  1. Acwing语法基础课第八次课(2)756. 蛇形矩阵748. 数组的右下半部分754. 平方矩阵 II752. 数组的右方区域 746. 数组的左下半部分750. 数组的下方区域

    748. 数组的右下半部分 题目 提交记录 讨论 题解 视频讲解 输入一个二维数组 M[12][12],根据输入的要求,求出二维数组的右下半部分元素的平均值或元素的和. 右下半部分是指次对角线下方的部 ...

  2. Acwing756. 蛇形矩阵:模拟

    文章目录 题目分析 题目链接 题目分析 所谓蛇形走位就是 螺旋形走位. 比如 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 模拟:需要知道4个偏移量,同时需要注意是顺时 ...

  3. wikioi 1160 蛇形矩阵

    /*======================================================================== 1160 蛇形矩阵 题目描述 Descriptio ...

  4. C语言实现上三角蛇形矩阵不用数组,C/C++编程笔记:C++ 嵌套循环,含循环打印及蛇形矩阵实例...

    也称为多循环,在一个循环中嵌套使用一个或多个循环. 嵌套循环的基本结构就是在一个循环中,循环体包含了另一个循环的情况.下面我用几个嵌套循环的例子来深入理解嵌套循环. 循环图案打印 分别打印下面三种图案 ...

  5. 方欣科技算法面试:蛇形矩阵2

    1 题目描述 /**  * 蛇形矩阵2  *   * 输入4  *   * 输出  *  1 12 11 10  *  2 13 16 9  *  3 14 15 8  *  4 5 6 7  *  ...

  6. 方欣科技算法题面试:蛇形矩阵

    1题目描述 样例输入 4 样例输出 1 3 6 102 5 9 4 8 7 2 java代码 //输入 //输入正整数N(N不大于100) // //输出 //输出一个N行的蛇形矩阵. // //样例 ...

  7. 用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...

    分享几道简单的python打印输出的问题,本质上都是可以将其分解成一个大循环之中有几个小循环. 1.杨辉三角 主要特点: 每个数等于它上方两数之和. 每行数字左右对称,由1开始逐渐变大. 每行端点与结 ...

  8. C语言实现上三角蛇形矩阵不用数组,蛇形矩阵c语言实现

    [问题描述]蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形.如: 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 本题要求根据输入的行数要求,输出对应的一个蛇形上三角矩 ...

  9. 牛客网--蛇形矩阵(Java)

    题目描述 题目说明 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. 样例输入 5 样例输出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 接口说明 原型 void  ...

最新文章

  1. python 亮度一致_Python玩转各种多媒体,视频、音频到图片
  2. REST WebServices学习
  3. CentOS 5.5下LVM的分区管理
  4. 众多Android 开源项目再次推荐,学习不可错过
  5. 我来重新学习 javascript 的面向对象(part 1)
  6. odom_out_and_back.cpp
  7. “软考”遗失试卷全部追回 相关责任人接受审查
  8. freeldr 如何调用_BootMain的
  9. macBook Air出现部分乱码问题解决(浏览器、appstore乱码)
  10. IP地址是什么,618IP代理带你深入了解
  11. 解决IDEA打断点后,执行代码不会停在断点问题
  12. Nginx源码阅读:ngx_palloc 内存池
  13. 程序员如何优雅地写公众号
  14. 使用CDN后网页无法访问怎么解决
  15. ERP失败案例:业务流程再造失误
  16. java基于ssh的旅游系统
  17. java中字符串和数字变量之间的转换方法
  18. 【NLP】pyltp工具介绍、安装和使用代码+示例
  19. [BUUCTF]第七天训练日志
  20. cadlisp框选打印_我有好多CAD图纸要打印,一张一张的选取打印太麻烦了,请教高手有没有什么好的办法帮小弟一下、!..十分感...

热门文章

  1. 将一个正方形分成4个大小一样的小正方形,再将其中一个小正方形分成4个小正方形,如此类推,分割n次是几个正方形?
  2. Android之用setColorFilter在ImageView上面覆盖一层灰色的图层
  3. Android之给ImageView添加点击效果
  4. linux之 !!命令
  5. python赋值语句的一般格式为_[零基础学Python]赋值,简单也不简单
  6. 安卓设备刷linux发行版,绝对精华,大牛教你在Android系统上安装linux发行版
  7. python自带的函数有哪些_为什么说 Python 内置函数并不是万能的?
  8. 这几部经典纪录片,竟然还有人没看过?
  9. 揭秘神仙高校的课堂!网友跪了:这就是差距啊!
  10. 看到这一幕,我甚至都想戒烟了。。 | 今日最佳