打印

  • Z字型扫描(有的又叫这是蛇形扫描)
    • 方法一:处在同一对角线(东北指向)上的点 之 行坐标+纵坐标 的和相等,且就是对角线序号
    • 方法二:利用东北指向的对角线上的点 横纵坐标之和相等,可以把横纵坐标之和相等的点存储在邻接表adj【i+j】(一个vector < int > 类型的数组)里面
    • 方法三:遍历完了一条对角线拐弯
    • 方法四:
  • Z字型
  • 逆时针回字型打印
  • 1106: 蛇形填数(回字型)
  • 打印漏斗
  • 等腰三角形

Z字型扫描(有的又叫这是蛇形扫描)

https://www.acwing.com/problem/content/description/3211/

方法一:处在同一对角线(东北指向)上的点 之 行坐标+纵坐标 的和相等,且就是对角线序号

n * n 方阵有2*n-1条对角线,遍历行号,同时根据对角线确定列号(处在同一对角线(东北指向)上的点 之 行坐标+纵坐标 的和相等,且就是对角线序号)

一个矩阵一共有 2n−12n−1 条对角线
把对角线分成两类 右上和左下
对于每一条对角线 都有 x+y=C1 x−y=C2
也就是说 ,对角线的坐标之差/坐标之和是固定的
因此可以利用这个关系来算坐标 最后判断一下边界即可

由于Z字型扫描规律,偶序号对角线上扫描方向是 右上,行号递减;奇序号对角线上扫描方向是 左下,行号递增;
(改变遍历行号的顺序就行)

#include <iostream>
/*run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int a[505][505];
int main(int argc, char** argv) {int n;cin>>n;//n*n矩阵 for(int i=0;i<n;i++){for(int j=0;j<n;j++){cin>>a[i][j];}}int len=(n<<1)-1;
//n方矩阵有2*n-1条对角线,根据这题扫描顺序,对角线沿着东北方向 for(int i=0;i<len;i++){//if(i&1){//奇数号对角线从右上到左下输出 行号增大 偶数号对角线反之for(int j=0;j<=i;j++){if(j>=0&&j<n&&i-j>=0&&i-j<n)cout<<a[j][i-j]<<" ";
//对角线序号固定不变,要输出这一对角线上所有元素,行列都在递变
//因此要用一个变量遍历 行,再根据 行号和对角线遍历 列号    } }else{for(int j=i;j>=0;j--){if(j>=0&&j<n&&i-j>=0&&i-j<n)cout<<a[j][i-j]<<" ";}} } return 0;
}

方法二:利用东北指向的对角线上的点 横纵坐标之和相等,可以把横纵坐标之和相等的点存储在邻接表adj【i+j】(一个vector < int > 类型的数组)里面

#include <iostream>
#include <vector>
/*run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int a[505][505];
//vector<int> adj[1010];//一个vector数组连城的数组
vector<vector<int> > adj;//二维vector数组												

蛇形、之字、回字打印相关推荐

  1. 回字有四种写法,那你知道单例有五种写法吗

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前往,查看更多 转自 ...

  2. 【转】回字有四种写法,那你知道单例有五种写法吗

    目录导航 基本介绍 写法介绍 饿汉式 懒汉式 双重检测 内部类 枚举 总结 基本介绍 单例模式(Singleton)应该是大家接触的第一个设计模式,其写法相较于其他的设计模式来说并不复杂,核心理念也非 ...

  3. 《剑指offer》-- 二叉树的下一个结点、对称二叉树、按之字性顺序打印二叉树、把二叉树打印成多行

    一.二叉树的下一个结点: 1.题目: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 2.解题思路: 分析二叉树 ...

  4. cass方格网数据excel_讨论|CASS怎么计算回字型土方? 124

    大家好,欢迎来到我的专栏.这是我原创的第124篇CASS应用技术干货文章.希望对你有所帮助,写文不易,请点赞哦! 回字型土方工程,就是计算区域内部,有一个或多个不参加计算的区域,这种区域也就是常说的& ...

  5. python小乌龟绘制迷宫_用turtle不断的画回字迷宫

    2.[文件] 画个回字(最原始方法).py ~ 3KB 下载(4) #coding=UTF8 from turtle import * import turtle, time # 绘制正方形: col ...

  6. python用一行代码画个迷宫_[代码全屏查看]-用turtle不断的画回字迷宫

    [2].[文件] 画个回字(最原始方法).py ~ 3KB    下载(4) #coding=UTF8 from turtle import * import turtle, time # 绘制正方形 ...

  7. 打印海报_新安装的字体用Word打印显示不出这种字体问题_保存为A0大小问题_ppt转换为PDF不失真问题

    1. 新安装的字体用Word打印显示不出这种字体问题 解决:取消对勾 2. 保存为A0大小问题_解决:上图中更改"页面大小" 3. ppt转换为PDF不失真问题--1.选项-> ...

  8. 回字有四种写法,阶乘verilog实现有几种方法?

    回字有四种写法,阶乘verilog实现有几种方法? 方式一:普通方式实现阶乘计算: verilog代码: module tryfact; function[31:0]factorial; input[ ...

  9. 请问“回”字有几种写法?

    我们一行10人在讨论如何提高我们学校毕业生就业竞争力的问题,突然孔乙己用一种挑衅加高傲的眼神问我:"在论坛里看你说话感觉你才高八斗,满腹经纶.现在我有一个问题想请教一下:你知道'回'字有几种 ...

最新文章

  1. 李彦宏:正在发生的智能经济 4 大变革 | 赠书
  2. VB 断开指定进程网络连接函数
  3. 【渝粤教育】电大中专职业生涯规划作业 题库
  4. 《算法导论》第7章 快速排序 (四种变形)
  5. 程序设计导引(四)[终结篇]
  6. SAI2.0绘画软件中文版(已测可用)
  7. LoadRunner11的安装与破解
  8. es6文档笔记(全)
  9. 网络攻防技术——缓冲区溢出攻击实验
  10. 双向循环链表解决约瑟夫问题
  11. Nick Szabo:可信任计算的黎明
  12. BIP47 (支付码)
  13. 大数据研究,不能“忽悠”
  14. 若依部署css样式失效时
  15. RPA初级认证直通车,不懂代码也能成为技术大佬
  16. JAVA实现图片缩放反转
  17. 中小商业银行数字人民币应用发展
  18. 温度传感器通过机房的传输能力及漏水检测方案
  19. TDD基础-红绿重构练习之“井字游戏“
  20. 多文件内容快速对比、MD5

热门文章

  1. pocketgamer盘点十大最佳iPhone物理游戏
  2. 论文精读《BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View》
  3. WIN10上IPFS的简单使用(2021版)
  4. 第一次的博客(写一点关于今天的数据库学习吧)
  5. HUAWEI——VPR基础及操作
  6. 2020-2021学年——图像图形编程实践实验4_Canny图像边缘检测
  7. android 滑动到顶部或底部光影效果控制
  8. 【181008】VC++写的中国象棋游戏源程序
  9. 计算机写邮件的格式,email格式怎么写 email格式应该怎么写
  10. Light Image Resizer v6.0.8 图像无损批量处理工具便携版