c++实现蛇形矩阵总结
蛇形矩阵,百度了一下,是这么一个东西:

像一条蛇一样依次递增。
我想,竟然做了螺旋矩阵,那做一下这个吧。在之前的螺旋矩阵的main函数基础上,写个函数接口就行了,这一次做的很快,但是这个矩阵感觉比螺旋要难。
我的思路是这样的,先输出左边的矩阵(包括对角线),再输出左边的矩阵(不包括对角线)。
看上图,因为我是一条对角线一条对角线这样赋值的,所以左边矩阵应该要赋值 n次,右边是n-1次。
而外层循环的次数是偶数的时候,也就是这样:
上图的1,然后是:4->5->6,然后是:11->12->13->14->15这些是从上往下递增,然后奇数的循环是从下往上地址。基于这个很快就可以写出程序了,代码是这样的:
#include <iostream> using namespace std; void snakeLikeMat(int **a, int n)
{
int num = ;
int total = n*n;
for (int i = ; i < n; i++)
{
for (int j = ; j <= i; j++)
{
if (i % == )
{
a[j][i - j] = num++;
}
else
{
a[i - j][j] = num++;
}
} }
for (int i = ; i < n-; i++)
{
for (int j = ; j <= i; j++)
{
if (i%==)
{
a[n - - j][n - - i + j] = total--;
}
else
{
a[n - - i + j][n - - j] = total--;
}
}
}
} int _tmain(int argc, _TCHAR* argv[])
{ int ha = ;
cin >> ha;
int **a = new int*[ha];
for (int i = ; i < ha; i++)
{
a[i] = new int[ha];
}
snakeLikeMat(a, ha);
for (int i = ; i < ha; i++)
{
for (int j = ; j < ha; j++)
{
cout << a[i][j] << "\t";
}
cout << endl;
}
for (int i = ; i < ha; i++)
{
delete [] a[i];
}
delete[] a;
return ;
}
两个外层for循环分别是左矩阵和右矩阵。运行结果,取什么呢
1,3,8吧
1:

3:

8:

哈哈,见笑了。
c++实现蛇形矩阵总结的更多相关文章
- js实现蛇形矩阵
参加腾讯前端实习生笔试,真的是被虐了千百遍,除了一条js程序题,其他半点前端都没有,都是考算法,计算机原理,数据结构.下面贴上腾讯笔试最后三大条中的一条,实现一个蛇形矩阵的输出.蛇形矩阵的什么样这里我 ...
- 【面试】输出"蛇形"矩阵
一.题目描述 腾讯实习在线笔试的一道题目. 根据输入的数字(< 1000),输出这样的"蛇形"矩阵,如下.输入n,输出(n * n)阶矩阵,满足由外到内依次增大. 如: 输入 ...
- wikioi 1160 蛇形矩阵
/*======================================================================== 1160 蛇形矩阵 题目描述 Descriptio ...
- EOJ3536 求蛇形矩阵每一行的和---找规律
题目链接: https://acm.ecnu.edu.cn/problem/3536/ 题目大意: 求蛇形矩阵的每一行的和,数据范围n<=200000. 思路: 由于n数据较大,所以感觉应该是需 ...
- Java编码 蛇形矩阵的构建与遍历输出
一.蛇形矩阵的构建,并按行输出 例: 输入:n, 生成n*n的蛇形矩阵 1 2 3 8 9 4 7 6 5 输出:1 2 3 8 9 4 7 6 5 java编码 public static void ...
- c++打印蛇形矩阵
一个m*n的矩阵里按照下图形式填充,最后形成的矩阵即为蛇形矩阵,下图是m=4, n =5时的蛇形矩阵: 方法一:逐层循环 #include <iostream> using namespa ...
- EOJ 3.30 B. 蛇形矩阵【找规律/待补】
[链接]:https://acm.ecnu.edu.cn/contest/59/problem/B/ B. 蛇形矩阵 Time limit per test: 2.0 seconds Memory l ...
- ACM_蛇形矩阵
蛇行矩阵 Time Limit: 4000/2000ms (Java/Others) Problem Description: 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. Input: ...
- ACM_三角形蛇形矩阵
三角形蛇形矩阵 Time Limit: 2000/1000ms (Java/Others) Problem Description: 小铠觉得各类题型是要温故而知新的,所以他叫小发出一道类似做过的题. ...
随机推荐
- 文件代码对比软件 Beyond Compare
Beyond Compare https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=Beyond%20Co ...
- Run P4 without P4factory - A Simple Example In Tutorials. -2 附 simple_router源码
/* Copyright 2013-present Barefoot Networks, Inc. Licensed under the Apache License, Version 2.0 (th ...
- CentOS 6.6 安装 PHP Memcached 扩展
PHP 的 Memcached扩展使用了 libmemcached 库提供的 api 与 memcached 服务端进行交互.它同样提供了一个 session 处理器(memcached). PHP ...
- 打包成zip
protected void btnExportZip_Click(object sender,EventArgs e) { string archiveName=String.Format(&quo ...
- WPF TabControl 隐藏标头
1. 将每个 TabItem 的 Visibility 属性设置为 Visibility.Collapsed 即可隐藏标头 <TabItem Visibility="Collapsed ...
- m=m++,结果让你大吃一惊。
如图,本来以为m=m++和m++是同一个效果,没想到m的值居然还是0. 原来m++是一个表达式,是有返回值的,它的返回值就是m自加前的值,Java对自加是这样处理的:首先把m的值(注意是值,不是引用) ...
- YII2.0--------这篇文章记录我学习YII2.0的过程吧,也可以让更多的人少走弯路
1.情况:今天我从github上下载了一个项目,本以为直接丢到根目录运行就行了,但是不行. 解决办法:首先安装git,安装步骤这里不讲了,稍微讲一下配置环境变量.
- Thinkphp--------为什么Thinkphp会默认进入Index控制器的index方法
最近遇到两个刚学PHP的童鞋,都问到了同一个问题,就是他们没有做什么配置,为什么访问入口文件index.php的时候会自动跳转到IndexController里面的index方法.他们想知道具体怎么回 ...
- IIS7 应用程序池设置成 经典 v2.0
HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipe ...
- 【001:ubuntu下搭建ESP8266开发环境--编辑 编译 下载】
系统环境:ubuntu 16.04 TLS 64BIT 编辑器: Eclipse CDT 版本 编译器:xtensa-lx106-elf 交叉编译工具链 下载工具:esptool.py pyseria ...