当前位置: 首页 > news >正文

图片c语言是输出矩阵吗,蛇形矩阵输出是要怎么写代码,感觉没有眉目啊,大佬能说一下思想吗...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include

#include

#include

using namespace std;

void rowfill(int& startnum, int& startrow,int& startcol

, int length,int step,int direct,vector> &vec) {

int i = 0;

for (; i < length; i++) {

vec[startrow][startcol+i*direct] = startnum +i*step;

}

startcol += i * direct;

startnum += i * step;

}

void colmfill(int &startnum, int&startrow,int& startcol

, int length,int step,int direct,vector> &vec) {

int i = 0;

for (; i < length; i++) {

vec[startrow+i*direct][startcol] = startnum + i * step;

}

startrow += i * direct;

startnum += i * step;

}

map> &)> >

filled= {

{0, rowfill}, {1, colmfill}, {2, rowfill}, {3, colmfill}

};

void draw(int m, int n, int p,int direct, vector> &vec) {

static int startrow = 0;

static int startcol = 0;

static int startnum = n ? 0 : (m * m - 1);

static int step = n ? 1: -1;

if (direct / 4) {

m-=2;

startrow++;

startcol++;

direct %= 4;

}

if (m<0) return;

int dir = (direct <2) ? 1: -1;

filled[(direct+(!p))%4](startnum, startrow, startcol, m-1, step, dir, vec);

if (m == 1) vec[startrow][startcol] = startnum;

draw(m, n, p, direct + 1, vec);

}

int main(){

int m, n, p;

cin >> m >> n >> p;

vector> vec(m,std::move(vector(m,0)));

draw(m, n, p, 0,vec);

for (auto &v : vec) {

for (auto c : v)

cout << c << '\t';

cout << endl;

}

return 0;

}

相关文章:

  • ubuntu nfs linux,Ubuntu 14.04下NFS安装配置
  • i686-pc linux gnu,交叉编译: --host --build --target到底什么意思?
  • android 字母好友,如何获取android手机联系人并按字母展示(二)
  • sony 播放器 android,Hi-Res Audio Player
  • adb更新android分区,Android adb升级OTA
  • android 反射执行方法,Android中怎么通过反射调用setUsbTethering()方法
  • iphone没有android安全,Android安全性与iPhone一样吗
  • android listview checkbox 选中状态,Android ListView专题之十  checkbox选中的值在翻屏时会跳来跳去...
  • 鸿蒙系统翻车了,鸿蒙系统翻车了?任正非承认忽视了关键问题,称华为犯下大错误...
  • android10侧滑返回黑屏,Android实现类似IOS右滑返回的效果(原因分析及解决办法)
  • 华为 android 安全,华为 EMUI/Magic UI 安全更新 2020-3
  • 华为mate50麒麟处理器鸿蒙系统,华为Mate50Pro概念图:有鸿蒙OS,处理器你选择麒麟还是高通?...
  • html右侧箭头是什么控件,html实现右箭头
  • html免费教程在线,免费HTML5在线教程 - 踏得网
  • android 单例设计模式,Android设计模式之单例模式
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Android Volley源码解析
  • CentOS从零开始部署Nodejs项目
  • Effective Java 笔记(一)
  • iOS小技巧之UIImagePickerController实现头像选择
  • Java比较器对数组,集合排序
  • python 学习笔记 - Queue Pipes,进程间通讯
  • webpack4 一点通
  • 观察者模式实现非直接耦合
  • 后端_ThinkPHP5
  • 解析 Webpack中import、require、按需加载的执行过程
  • 聊聊redis的数据结构的应用
  • 实现简单的正则表达式引擎
  • 智能合约开发环境搭建及Hello World合约
  • 智能网联汽车信息安全
  • 06-01 点餐小程序前台界面搭建
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​configparser --- 配置文件解析器​
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • !!Dom4j 学习笔记
  • #DBA杂记1
  • #if #elif #endif
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (libusb) usb口自动刷新
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)ssm高校实验室 毕业设计 800008
  • (三)Honghu Cloud云架构一定时调度平台
  • .Family_物联网
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [Docker]三.Docker 部署nginx,以及映射端口,挂载数据卷
  • [IE9] GPU硬件加速到底是实用创新还是噱头
  • [IE编程] 如何在IE8 下调试BHO控件/工具栏(调试Tab进程)
  • [JavaScript]_[初级]_[关于forof或者for...of循环语句的用法]
  • [Java开发之路](14)反射机制
  • [Java性能剖析]Sun JDK基本性能剖析工具介绍
  • [KMP求最小循环节][HDU1358][Period]
  • [LeetCode 127] - 单词梯(Word Ladder)