#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h>
//下标和为s的斜行数字个数
int numof_each(int s,int n){return (s)<=n-1?(s+1):((n<<1)-s-1);}
//x,y所在斜行的数字书写顺序,1表示由下往上,0表示由下往上
int direction(int x,int y) {return (x+y)&1;}
//得到x,y所在斜行第一个被书写的下标(x0,y0)
void get_bound(int x,int y,int n,int &x0,int &y0)
{
int d = direction(x,y);
x0=(d?n-1:0);int step=(d?-1:1);
for(;x0>=0&&x0<=n-1;x0+=step)
{
y0=x+y-x0;
if(y0>=0 && y0<=n-1)break;
}
}
//获取(x,y)被填写的数字
int valueof(int x,int y,int n)
{
int x0,y0;
get_bound(x,y,n,x0,y0);
int v=0;
for(int i=0; i<x0+y0;i++)
v+=numof_each(i,n);
v++;
return v+abs(x-x0);
}
//打印大小为n的蛇形矩阵
void print_snake(int n)
{
for(int i = 0; i < n; i++)
{
for(int j=0; j< n; j++)
{
printf("%4d ",valueof(i,j,n));
}
printf("/n");
}
}
void main()
{
int n = 0;
while(true)
{
scanf("%d",&n);
if(n<=0)break;
//getchar();
print_snake(n);
}
getchar();
}
相关推荐
蛇形矩阵的创建
这是记录我做的一道关于蛇形矩阵的文章 1题目描述 【问题描述】 将1,2,…,n*n个自然数,按蛇形方式存放在二维数组A[n][n]中。“蛇型”方式,即是按“副对角线”平行的各对角线,从左下到右上,再从右上到左下,存放n2个整数。例如: 1 3 4 2 5 8 6 7 9 【输入形式】 输入数组的阶数n。 【输出形式】 打印数据元素按蛇形排列的数组,整数打印的域宽为4。 【样例输入】3 【样例输出】 1 3 4 2 5 8 6 7 9 【样例说明】矩阵的阶数为3,打印按蛇形存放
不借助数组,解决 n*n蛇形矩阵
二维数组蛇形和Z形矩阵输出
1、蛇形矩阵输出 思路:就顺时针的矩阵为例,由矩阵外至内圈的数值是逐渐加1的,所以主要是找出值循环增加的规律,跟设定的圈数round有关,而round的取值范围为0 <= round <= n / 2,首先定义圈数从0开始,→的下标x是恒定的,从0开始,但是下标y是从round至n - round的,接着向下↓,下标y保持n - round 不变,下标x从round + 1增加到n -
C语言实现上三角蛇形矩阵不用数组,蛇形矩阵c语言实现
【问题描述】蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。如:1 3 6 10 152 5 9 144 8 137 1211本题要求根据输入的行数要求,输出对应的一个蛇形上三角矩阵【输入形式】一个整数【输出形式】与之对应的蛇形上三角矩阵【样例输入】5【样例输出】1 3 6 10 152 5 9 144 8 137 1211【样例说明】每个数字占4个...
矩阵转换问题(蛇形打印,蛇形顺序打印,之字打印)c方法
在某在线笔试遇到的题目就整理了下笔记来写下这个一些部分矩阵的转换问题。 问题描述: 输入: 123 894 765 输出:123456789 #include int main(int argc, char *argv[]) { int min, max; //分别指向两个对角,并向内收缩 int i, j, n, a[100][100]; //定义足够大的数组
使用二维数组和双重循环打印蛇形矩阵
使用二维数组和双重循环打印蛇形矩阵使用二维数组和双重循环打印蛇形矩阵使用二维数组和双重循环打印蛇形矩阵
P1278 蛇形方阵 OJ
题目描述 输出一个 n 阶方阵,其元素排列方式为:从左上角开始按列顺序呈现出蛇形。如: 1 20 21 40 41 60 61 80 81 100 2 19 22 39 42 59 62 79 82 99 3 18 23 38 43 58 63 78 83 98 4 17 24 37 44 57 64 77 84 97 5 16 25 36 45 56 65 76 85 96 6 15 26 35 46 55 66 75 86 95 7
Pywinauto与Inspect.exe完美搭配:解决Windows应用UI自动化中的元素定位难题
本文详细介绍了如何将Pywinauto与Inspect.exe结合,以解决Windows应用UI自动化中的核心难题——元素定位。通过实战指南,阐述了如何利用Inspect.exe在UIA模式下精准侦察控件属性,并将这些信息转化为Pywinauto的稳健定位策略,从而高效自动化WPF、WinForms等现代框架构建的复杂桌面应用。
不用数组输出蛇形矩阵
在之前我用数组输出过蛇形矩阵,今天在看网页时发现了也可以不用数组和vector也可以实现输出。 出处:http://ayeye.blog.sohu.com/300658293.html #include "stdafx.h" #include #include using namespace std; #define MIN(a,b) ( (a)<(b) ? (a):(b)) int
TSMaster如何用珠海创芯CAN卡实现高效CAN通信(附完整驱动安装指南)
本文详细介绍了如何使用TSMaster软件与珠海创芯CAN卡实现高效CAN通信,包括驱动安装、系统配置、ControlCAN.dll替换及TSMaster集成配置等关键步骤。通过实战指南和故障排除技巧,帮助工程师快速搭建稳定可靠的CAN通信测试环境,适用于汽车电子和工业控制等领域。
Mybatis Provider注解实现批量插入
需求 借助mybatis 的provider实现一个比较通用的,批量插入数据接口。 Mapper接口 第一参数为需要批量插入的数据,第二个参数为对应实体类的class public interface BaseDao<T> { @InsertProvider(type = BaseProvider.class, method = "batchInsert") int batchInsert(@Param("lists") List<T>
蛇形数组打印(两种形式)
蛇形数组打印 第一种形式 形式1 5 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 请按任意键继续. . . 形式2 5 13 14 15 16 ...
你不知道的Postman的Mock接口测试,看这一篇就够了
创建Mock服务你可以从Postman已有的测试集(Collection)中创建Mock Server或者直接创建Mock Server(我们这里选择从已有的测试集中创建Mock Server)Mock server详细配置页面,在此页面中我们可以设置:命名Mock Server选择一个环境(可选的),我们可以选择之前设置过的环境,Mock Server将会使用对应环境中设置过的变量在对应的请求和响应中如果想要将Mock Server设置私有访问的,那么可以勾选此选项,不勾选则对所有人可见。
C语言实现上三角蛇形矩阵不用数组,C/C++编程笔记:C++ 嵌套循环,含循环打印及蛇形矩阵实例...
也称为多循环,在一个循环中嵌套使用一个或多个循环。嵌套循环的基本结构就是在一个循环中,循环体包含了另一个循环的情况。下面我用几个嵌套循环的例子来深入理解嵌套循环。循环图案打印分别打印下面三种图案: 思路分析一般来说,单循环打印的图案都是线性的,要么是横线要么是竖线。那么我们这里需要打印一个二维图形,就需要从线跨越到面。那么我们只要有很多条线就能构成一个平面,所以我们这里打印二维图形就需要两个循环来...
2023华为OD机试真题B卷 Python 实现【最长的元音子串长度】
定义当一个字符串只有元音字母(a,e,i,o,u,A,E,I,O,U)组成,称为元音字符串,现给定一个字符串,请找出其中最长的元音字符串,并返回其长度,如果找不到请返回0, 字符串中任意一个连续字符组成的子序列称为该字符串的子串
16、AI与无人机助力紧急器官移植及医疗物资运输
本文探讨了AI与无人机(UAV)集成模型在紧急器官移植和医疗物资运输中的应用。传统运输方式受限于交通、时间和环境因素,而基于图神经网络(GNN)的AI-UAV系统可实现高效、智能、全天候的医疗物资配送,具备实时温湿度监控、自动导航和适应复杂地形等优势。文章分析了该模型在血液、器官运输中的关键作用,展示了其在澳大利亚、中国、美国等国的实际应用案例,并通过表格与流程图说明运作机制。同时,文章还探讨了技术、法规和社会层面的挑战及应对策略,展望了未来技术融合、应用拓展和国际合作的发展趋势,凸显其在全球医疗物流中的广
把蛇形矩阵打印到TXT文档中去
第一个是你输入内容的文档,第二个是该文档内部数据的格式,第三个就是你文档内部的数据。行尾不要多余的空格。//pos来表示蛇形矩阵此时的方向,0表示向左下,1表示向右上。内部的变量是需要打开的文档名字和打开的模式。fscanf和scanf类似,但不同的时fscanf可以从你指定的文件中进行读取内容。蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。打印蛇形矩阵的部分就不再赘述了,我的上一篇博客有详细讲述过(虽然讲的不是很好)。if (r == 0)//上边界。if (pos == 0)//向左下。
华为OD机试双机位C卷-几何平均值最大子数组(Py/Java/C/C++/Js/Go)
华为OD机试(机考)2026双机位C卷 【几何平均值最大子数组】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【几何平均值最大子数组】。
打印回型矩阵<——>蛇形矩阵(C语言)
这样看的话,如果奇数趟每往上一个数,x作为行坐标就要-1,而y作为列坐标就会+1,反过来如果偶数趟y作为起点坐标,每往下一个数y就需要-1,而x就要+1。这里我们就可以定义一个变量来记录看它是偶数趟还是奇数,如果是奇数趟就让这个变量为-1,每次数值一个数后就让x+上这个-1,而y就去减-1,,然后用一个数来作为每次需要放进矩形的那个数。从左——>右的时候就可以是strat作为数组的行,i作为列,让i每次++,count也每次++然后把count里面的值放进数组里面,就得到第一行了左——>右的数值。
串行RapidIO(Serial RapidIO,SRIO):协议介绍
目录一、RapidIO背景介绍二、RapidIO协议概述2.1 包与控制符号2.2 包格式2.4 消息传递2.5 全局共享存储器2.6 流量控制2.7 串行物理层三、I/O逻辑操作与包格式四、维护操作与包格式五、消息操作与包格式六、总结 本文是基于Xilinx平台SRIO介绍(一)RapidIO协议介绍的内容作读书笔记。 一、RapidIO背景介绍 RapidIO采用三层分级体系结构,包括逻辑层、传输层和物理层该分级结的如下图所示: ● 逻辑层:位于最高层,定义全部协议和包的格式,它们为端点器件发起和完
IDEA的使用指南
IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.
C++——蛇形矩阵
这篇专栏记录的是如何打印蛇形矩阵,效果如下,用一个二维数组即可实现。 输出结果: 1 2 6 7 15 16 28 29 45 46 66 67 91 3 5 8 14 17 27 30 44 47 65 68 90 92 4 9 13 18 26 31 43 48 64 69 89 93 114 ...
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
打印及判断回文数组、打印N阶数组、蛇形矩阵
左上和右下是对称的。所以先考虑左上打印,mini1j1考虑右下打印minn−in−j然后两者重合一下,取最小值,min左上,右下,代码如下int。
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
回型矩阵|蛇形矩阵|上三角矩阵|矩阵转置|二维数组打印问题
回型矩阵|蛇形矩阵|上三角矩阵|矩阵转置|二维数组打印问题
打印蛇形矩阵
题目来自小米校招笔试题 题目:打印蛇形矩阵 思路:一次打印一个斜杠 代码: #include using namespace std; void PrintUp(int **pArrMatrix,int nCurX,int nCurY,int nLen,int& nCount); void PrintDown(int **pArrMatrix,int nCurX,int nCurY
2-蛇形矩阵
蛇形矩阵 首先我们来看问题: 上面这个矩阵我们要怎么将它输出呢? 我们仔细观察这个矩阵,不难发现它是有一定规律的:它的数字沿着一条蛇一样弯曲排布: 那么问题来了,我们在电脑中输出都是以一行一行这样来输出的,这个矩阵的顺序明显不符合以行为参考时的输出方式,那我们就改个思路,既然不能按蛇形的顺序打印,但是我们可以按蛇形的顺序将数据存入一个数组呀,想到这里,我们就有一定方向了。 首先是写好用来存储的数组和打印函数: #include<stdio.h> int main() { int a
1691



被折叠的 条评论
为什么被折叠?



