news 2026/4/18 3:58:00

C++编程中关于螺旋数组的解题思路

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++编程中关于螺旋数组的解题思路

对于给定的一个输入变量n,要求绘出一个n*n的二维数组,要求从数字1开始,从左到右,从上到下,进行螺旋式的填充,每填充一个数字,变量值+1。

这类问题基本上要考虑四个方向,用0,1,2,3分别表示四个方向,方向每变化一个,都要加1,并且和4求余数%4,用一个变量计数,从1-n*n结束,每次加一,遇到遍历过的位置或者边界就改变方向,直到输出最后一个数为止。

#include <stdio.h> using namespace std; int main() { int n; printf("请输入矩阵的大小 n: "); scanf("%d", &n); // 方向:0-右,1-下,2-左,3-上 int directions[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; int a[10000]; // 存储螺旋数组的一维表示 int x = 0, y = 0; // 当前位置 int dir = 0; // 当前方向:初始向右 int num = 1; // 当前要填入的数字 // 初始化数组为0(用于标记边界) for (int i = 0; i < n * n; i++) { a[i] = 0; } // 填充螺旋数组 for (int i = 0; i < n * n; i++) { a[x * n + y] = num++; // 将数字存入一维数组 // 计算下一个位置 int next_x = x + directions[dir][0]; int next_y = y + directions[dir][1]; // 检查是否需要改变方向: // 下一个位置超出边界,或者已经填过数字 if (next_x < 0 || next_x >= n || next_y < 0 || next_y >= n || a[next_x * n + next_y] != 0) { // 改变方向:右→下→左→上→右... dir = (dir + 1) % 4; next_x = x + directions[dir][0]; next_y = y + directions[dir][1]; } // 移动到下一个位置 x = next_x; y = next_y; } // 输出结果(按矩阵形式输出) printf("螺旋矩阵:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%3d ", a[i * n + j]); } printf("\n"); } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 18:30:50

3步搞定MeterSphere集群高并发:Nginx负载均衡完整解决方案

3步搞定MeterSphere集群高并发&#xff1a;Nginx负载均衡完整解决方案 【免费下载链接】metersphere MeterSphere 一站式开源持续测试平台&#xff0c;为软件质量保驾护航。搞测试&#xff0c;就选 MeterSphere&#xff01; 项目地址: https://gitcode.com/gh_mirrors/me/met…

作者头像 李华
网站建设 2026/4/14 9:17:50

如何用Step-Audio-TTS-3B快速构建企业级语音合成服务

如何用Step-Audio-TTS-3B快速构建企业级语音合成服务 【免费下载链接】Step-Audio-TTS-3B 项目地址: https://ai.gitcode.com/StepFun/Step-Audio-TTS-3B 想象一下&#xff0c;你的智能客服系统需要为不同地区的客户提供个性化的语音回复&#xff0c;或者你的在线教育平…

作者头像 李华
网站建设 2026/4/16 16:05:55

Ubuntu+搜狗输入法:程序员的高效中文输入方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个面向程序员的Ubuntu搜狗输入法优化配置指南应用&#xff0c;包含&#xff1a;1) 开发环境专用词库 2) 编程术语快捷输入 3) Markdown/代码注释模板 4) 终端输入优化方案 5)…

作者头像 李华
网站建设 2026/4/17 20:52:08

HG系列重负荷滑轨预压等级如何选型更适配设备?

很多自动化设备工程师在选HG系列重负荷滑轨时&#xff0c;都会纠结预压等级怎么选才合适——选松了怕刚性不够&#xff0c;选紧了又担心影响寿命。作为直线导轨生产厂家的专业合作经销商&#xff0c;深圳市海威机电有限公司&#xff08;HIWIN授权经销商&#xff09;的技术团队经…

作者头像 李华
网站建设 2026/4/13 17:57:27

好用的车联网时序数据库机构有哪些

车联网时序数据库行业分析&#xff1a;TDengine的技术优势与应用价值行业痛点分析在车联网时序数据库领域&#xff0c;当前面临着诸多技术挑战。随着车联网的快速发展&#xff0c;车辆产生的数据量呈爆炸式增长&#xff0c;数据的实时性、准确性和高并发处理能力成为关键需求。…

作者头像 李华