蛇形数组

c++ 蛇形数组 倒三角 用C++语言,写“蛇形数组”程序(数字倒三角),将程序数据写入到TXT文件夹里面,本程序是重庆大学举办类似ACM竞赛的第一题 立即下载

蛇形数组,就是让n*n的数组设置为如下值:

3*3:

1       2       6
3       5       7
4       8       9

4*4:

1        2         6         7
3        5         8        13
4        9        12       14
10      11      15      16

5*5:

1        2         6        7       15
3        5         8       14      16
4        9        13      17      22
10      12      18      21      23
11      19      20      24      25

蛇形图初始方向向右,之后方向转换图如下

代码如下

class SnakingLine
{
public:
	enum direction 
	{
		RIGHT,
		LEFTDOWN,
		DOWN,
		RIGHTUP, 
	};
	SnakingLine(unsigned int);
	~SnakingLine();

	void draw();
	void show();
private:
	unsigned int m_nSize;
	unsigned int* m_map;
};

SnakingLine::SnakingLine(unsigned int size):
m_nSize(size),
m_map(NULL)
{

}

SnakingLine::~SnakingLine()
{
	if (NULL!= m_map)
	{
		delete[] m_map;
		m_map = NULL;
	}
}

void SnakingLine::draw()
{
        if(NULL == m_map)
        {
	    m_map = new unsigned int[m_nSize*m_nSize];
        }
	int x = 0;
	int y = 0;
	unsigned counter = 0;
	direction d = RIGHT;
	m_map[y * m_nSize + x] = ++counter;

	while(counter < m_nSize * m_nSize)
	{      
		switch(d)
		{
		case RIGHT:
			++x;
			if (y == m_nSize -1)
			{
				d = RIGHTUP;
			}
			else if(y == 0)
			{
				d = LEFTDOWN;
			}
		break;
		case LEFTDOWN:
			--x;++y;
			if (y + 2 > m_nSize)
			{
				d = RIGHT;
			}
			else if (x < 1)
			{
				d = DOWN;
			}
		break;
		case DOWN:
			++y;
			if (x < 1)
			{
				d = RIGHTUP;
			}
			else if (x + 2 > m_nSize)
			{
				d = LEFTDOWN;
			}
		break;
		case RIGHTUP:
			++x;--y;
			if (x + 2 > m_nSize)
			{
				d = DOWN;
			}
			else if(y < 1)
			{
				d = RIGHT;
			}
		break;
		}
		m_map[y * m_nSize + x] = ++counter;
	}
}

void SnakingLine::show()
{
	for(int i = 0; i < m_nSize * m_nSize; ++i)
	{		
		if (i % m_nSize == 0)
		{
			cout << endl;
			/* code */
		}
		cout << m_map[i] << '\t';

	}
	cout << endl;
}


蛇形排序算法 蛇形排序算法,C实现的蛇形排序算法,这种算法能够满足特定的需要 立即下载

相关推荐

C++蛇形数组(数字倒三角)

用C++语言,写“蛇形数组”程序(数字倒三角),将程序数据写入到TXT文件夹里面,本程序是重庆大学举办类似ACM竞赛的第一题

蛇形填充数组 (总结)

奇数时row与s n 的关系 s=5 row=4;s=7 row=4 (注意row是数组下标从0 开始) row=s-1。奇数时row与s的关系 s=1 row=0;s=3 row=2(注意row是数组下标从0 开始)s与col的关系 s=1 col=0;偶数时 s=2 row=0 s=4 row=0 偶数总是从第一行开始。偶数时 s=6 row= 1;s=2 col=1 s=4 col=3 总是比s小1。s与col的关系 s=5 col=0;

2401_88207011的博客 716

利用数组打印蛇形数图形

首先让我们来理解一下什么是蛇形数,它是一组用特定形式排列的数字图形,实现数字的排列就是最重要的问题。 我们通过几个例子,来说明一下蛇形数数组的排列方式是怎么样的,以本段代码产生的程序运行结果为例: 输入3 1 3 4 2 5 8 6 7 9 输入4 1 2 6 7 3 5 8 13 4 9 12 14 10 11 15 16 输入5 1 3 4 10 11 2 5 9 12 19 6 8 13 18 20 7 14 17 21 24 15 16 22 23 25 我们可以看到,蛇型数组均是一个t*t的矩阵数组。现在需要解决以下问题,第一个,如何使得数组按照蛇形数组的排列方式排列,第二个程序中输入多少就会产生一个多少乘多少的数据,如果一开始就定义好数组的内存单元数量,就会产生溢出,或者浪费内存单元的问题,这些问题如何解决。首先本程序采用的是Switch语句,上半部分与下半部分是按照(l+t)%2与l%2的结果进行赋值。采用了动态开辟,不浪费内存单元

蛇形数组(实现原理与源码)

【问题描述】 将1,2,...,n*n个自然数,按蛇形方式存放在二维数组A[n][n]中。"蛇型"方式,即是按"副对角线"平行的各对角线,从左下到右上,再从右上到左下,存放n2个整数。例如: 134 258 679 【输入形式】 输入数组的阶数n。 【输出形式】 打印数据元素按蛇形排列的数组,整数打印的域宽为4。 【样例输入】 3 【样例输出】 134 258 679 通过画斜行即可发显规律 题解: #includ...

weixin_56273009的博客 1162

Python笔试题之蛇形矩阵:

输入一个正整数N(N不大于100),输出一个n行的蛇形矩阵。 示例输入: 5 示例输出: 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 解法一: while True: try: N = int(input()) tmp_begin = 1 # 第一行的数 for i in range(1, N+1): begin = tmp_begin # 每行的开头 if i == N: print(begin) el

实现高精度卷积混响--MATLAB仿真篇

一、前言 之前在STM32F407上现实了直播声卡,实现的经典Schroeder混响模型和Moorer混响模型,得到不错效果。后来得知卷积混响最为真实地表现空间的特性,所以也就尝试在MCU上实现一个高精度的卷积混响(卷积点数为32768),目前MCU出来的混响效果算得上一流水准,本人也在计划在ADI的21489或者SC584上更高精度的卷积混响。 二、卷积方式 1、conv1是使用MATLAB自带卷积函数conv 2、conv2和conv3是改进后卷积过程,具有减少运算量特点,方便嵌入式移植 clear;

Six44的博客 5079

蛇形数组填充讲解

计蒜客 - T1143 蛇形数组填充 题目: 用数字1,2,3,4, . . .n,n*n这n的平方个数蛇形填充该数组。 蛇形填充方法为: 对于每一条左下-右上的斜线,从左上到右下依次编号 按编号从小到大的顺序,将数字从小到大填入各条斜线,其中编号为奇数的从左下向右上填写,编号为偶数的从右上到左下填写。 输入样例:4 输出样例: 1 2 6 7 3 5 8 13 4 9 12 14 10 11 15 16 输入样例:3 输出样例: 1 2 6 3 5 7 4 8 9 #include <stdio.h

yanyangjun6的博客 4842

手机安装Kali Linux

在数字化时代,信息安全和隐私保护显得尤为重要。,作为一款专业的和工具,因其强大的功能和丰富的资源库而受到广大安全研究者和爱好者的青睐。然而,我们通常只能在传统的电脑设备上安装和使用Kali Linux。那么,有没有可能将也变成一款随身携带的Kali Linux设备呢?答案是肯定的。本文将介绍如何在手机上安装Kali Linux,使你的手机变成一款强大的移动安全工具。,我们需要明确一点,手机安装Kali Linux并非简单的操作,需要对手机进行一定的改造和配置。

2301_80124151的博客 6964

打印蛇形数组

打印蛇形数组 如图片所示: 问题分析: 设置标志位,进行第一圈的打印,up, right, down, left 上 右 下 左 这4个变量控制打印 次数,j变量控制打印圈数 ,因此,需要五个for循环实现该操作。 两个for循环进行二维数组遍历输出打印 Java代码实现: public class Array { public static void show(int ...

weixin_44115126的博客 360

Mid-360与FAST-LIO2实战:从点云采集到高精度建图全流程解析

本文详细解析了使用Livox Mid-360激光雷达与FAST-LIO2算法实现高精度实时建图的全流程。内容涵盖硬件准备、软件环境搭建、算法部署配置、数据采集实战,并重点探讨了多楼层场景下的参数调优与误差抑制策略,为机器人及无人机三维感知应用提供了实用指南。

prometheus9mon的博客 414

CMake教程:C++ CMake自定义find_package并在其它项目使用

find_package 是 CMake 中一个非常重要的命令,用于在系统中找到外部库或包,并将其包含到项目中。: 要查找的包的名称。[version]: 可选的版本号。如果指定了版本号,CMake 会尝试找到该版本或更高版本的包。[REQUIRED]: 如果指定了这个关键字,找不到包时会产生一个错误并终止配置过程。: 指定要查找的包的组件。: 指定可选的组件,即使找不到这些组件,配置过程也会继续。: 指定查找包的模式,CONFIG表示查找配置文件,MODULE表示查找模块文件。

琅嬛福地 1563

蛇形输出一个二维数组

定义一个10*10的数组,让其蛇形输出,每行输出10个数: 1 2 3 4 5 6 7 8 9 10 36 37 38 39 40 41 42 43 44 11 35 64 65 66 67 68 69 70 45 12 34 63 84 85 86 87 88

weixin_51195895的博客 2046

零基础吃透!Python爬虫实战:超详细爬取小红书图文,解析封面+标题+文案全流程

本文为零基础开发者提供小红书图文爬取全流程指南,针对动态加载、严格反爬等核心痛点,从环境配置到数据解析详细讲解。主要内容包括: 核心特性分析:动态加载机制需抓包获取真实接口,严格反爬依赖Cookie验证和请求头伪装 环境准备:Python 3.8-3.10环境,使用requests/beautifulsoup4等库,通过浏览器开发者工具获取有效Cookie 实战步骤: 定位关键API接口(note/list) 配置请求头(含Cookie/User-Agent/Referer) 实现分页爬取和异常处理 解析封

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 730

蛇形数组三角呈现

蛇形数组 插入链接与图片 #include<iostream> #include<string> using namespace std; int arry[20][20]; void swap(int *i, int*j) { int temp; temp = *i; *i = *j; *j = temp; } void fanzhuan(int row) { for (int i = 0; i < row / 2; i++) { swap(&arry

weixin_45754140的博客 275

【OpenClaw从入门到精通】第34篇:医疗AI的“Agent OS”时代:基于WiseClaw构建医院专属智能体平台(2026实测版)

2026年医疗AI迈入实战落地新阶段,全球首个医疗OpenClaw平台WiseClaw正式发布,香港中文大学(深圳)医院完成业内首个私有化部署。本文基于真实医疗场景需求与公开技术资料,系统拆解医疗智能体平台的建设逻辑:从医疗Agent OS的五大核心特性切入,详解门诊病历质控、用药审查、医院运行管理三大临床场景的智能体搭建流程,提供完整的私有化部署代码、安全配置方案与实操演示。文章兼顾新手入门与进阶需求,严格遵循医疗合规要求,强调“只读不写+人工复核”原则,所有方案均经过虚拟实测验证。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 788

一张图讲透银行个人外汇业务逻辑和实操

个人外汇业务主要分为结售汇和外币兑换两类,前者满足日常跨境需求,后者因投机属性多数银行已暂停。业务核心是利用汇率波动实现货币兑换,满足支付或投资需求。交易涉及客户分类、主流币种、多种渠道和汇率计算规则,需区分直接/间接标价法判断汇率走势。银行通过"货币兑换"科目核算损益,采用期末折算确认盈亏。监管要求包括5万美元年度额度、合法渠道、真实性原则及大额申报等。随着跨境金融数字化发展,掌握基础逻辑和合规要求是安全参与外汇业务的关键。

银行信息系统应用架构详解 288

斜方向的蛇形数组

斜方向的蛇形数组数组填充的基本思路蛇形数组思考过程Java实现代码 数组填充的基本思路 一、寻找观察数组每个位置上的数字的规律,与行列,斜方向的排的规律直接填充数组 二、模拟数组的绘制过程,把填充数字的过程,想象成为一支笔,然后绘制出来 蛇形数组 给于一个数字N,输出如下规律的矩阵,此时N=10 1 2 6 7 3 5 8 4 9 10 思考过程 从数组中可以发现数组的填充过程如图所示 可以...

CJun 764

Unity-RetargetPro3-动画插件试用

一个名气大于实战的插件。

大话程序员 711
上一篇: 开平方取倒数计算
下一篇: 螺旋数组
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值