news 2026/5/8 11:51:39

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/5/3 12:07:02

如何快速安装pvar2:连玉君工具的完整使用指南

如何快速安装pvar2&#xff1a;连玉君工具的完整使用指南 【免费下载链接】pvar2连玉君安装包及说明 pvar2连玉君安装包及说明本仓库提供了一个名为pvar2连玉君.zip的资源文件下载 项目地址: https://gitcode.com/open-source-toolkit/483e6 pvar2是连玉君老师开发的一款…

作者头像 李华
网站建设 2026/5/4 22:07:17

关于卢广峰同志担任领导职务的公示

近日&#xff0c;根据国家战略发展需要及相关工作安排&#xff0c;卢广峰同志被任命为多个重要机构的主要领导职务&#xff0c;其中包括今年新组建的三家国有企业。此举旨在加强相关领域的专业化建设、战略资源整合与服务能力提升。现将主要任职情况新闻公示如下&#xff1a;一…

作者头像 李华
网站建设 2026/5/6 6:45:11

为什么 Maya 已经更新到 2026,行业依旧停留在 2018 / 2020 / 2022?——一份基于插件生态与生产管线的深度技术分析

本文从技术视角切入&#xff0c;基于 2000 条真实用户反馈、插件兼容数据、Pipeline 管线风险评估&#xff0c;给出当前最适合生产环境的 Maya 版本建议。Maya 2026 已经上线&#xff0c;动画工具链、GPU 处理能力、缓存系统等方面都相当强大&#xff0c;但你会看到一个非常反直…

作者头像 李华
网站建设 2026/5/1 7:28:12

企业如何应对‘地区不可用‘提示:5个成功案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个案例展示应用&#xff0c;包含5个企业解决地区不可用问题的详细案例。每个案例包括问题描述、解决方案、技术细节和效果评估。支持按行业筛选案例&#xff0c;提供联系方式…

作者头像 李华
网站建设 2026/5/3 8:30:56

基于二阶RC等效电路模型的FFRLS + UKF联合SOC估计

基于二阶RC等效电路模型的FFRLSUKF的联合SOC估计 具体思路&#xff1a;基于动态工况&#xff0c;采用遗忘因子最小二乘法估计电池参数&#xff0c;并将辨识结果导入到无迹卡尔曼滤波算法UKF算法中&#xff0c;实现FFRLSUKF的联合估计&#xff0c;基于动态工况 能保证运行&#…

作者头像 李华
网站建设 2026/4/30 4:55:28

Wan2.2-T2V-A14B对中文语境下文本理解的优化表现

Wan2.2-T2V-A14B对中文语境下文本理解的优化表现 你有没有遇到过这样的场景&#xff1a;脑中浮现出一段极具画面感的中文描述——“暴雨夜&#xff0c;穿旗袍的女人撑着红伞走过老上海石库门巷口&#xff0c;身后是昏黄路灯下斑驳的雨影”——但当你把它输入某个AI视频生成工具…

作者头像 李华