news 2026/7/7 18:27:15

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/7/7 11:49:19

X-CLIP模型实战指南:从配置解析到性能调优

X-CLIP模型实战指南&#xff1a;从配置解析到性能调优 【免费下载链接】xclip-base-patch32 项目地址: https://ai.gitcode.com/hf_mirrors/microsoft/xclip-base-patch32 你是否正在为视频理解项目寻找合适的多模态模型&#xff1f;X-CLIP作为微软推出的跨模态视频-语…

作者头像 李华
网站建设 2026/7/7 5:40:02

TWS耳机音频播放流程和Audio HiFi DSP架构

蓝牙耳机音频播放启动 #mermaid-svg-twCpuNo3SianbsJp {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-twCpuNo3SianbsJp .error-icon{fill:#552222;}#mermaid-svg-twCpuNo3SianbsJp .error-text{fill:#552222;strok…

作者头像 李华
网站建设 2026/7/7 9:45:06

5分钟快速上手:Beamer模板让幻灯片制作变得如此简单

还在为制作专业演示文稿而头疼吗&#xff1f;每次都要从头设计布局、配色、字体&#xff0c;耗费大量时间却效果平平&#xff1f;今天我要向你推荐一个神奇的解决方案——BeamerStyleSlides&#xff0c;这个开放的开源项目将彻底改变你的幻灯片制作体验&#xff01; 【免费下载…

作者头像 李华
网站建设 2026/7/7 16:05:39

Stockfish.js:终极免费国际象棋AI引擎完整指南

Stockfish.js&#xff1a;终极免费国际象棋AI引擎完整指南 【免费下载链接】stockfish.js The Stockfish chess engine in Javascript 项目地址: https://gitcode.com/gh_mirrors/st/stockfish.js 想要在网页应用中集成世界级的国际象棋AI吗&#xff1f;Stockfish.js正是…

作者头像 李华
网站建设 2026/7/7 19:05:26

Azure量子开发认证备考陷阱:3大易错考点与避坑指南

第一章&#xff1a;MCP Azure 量子开发认证考点解析Azure 量子开发认证&#xff08;Microsoft Certified: Azure Quantum Developer Associate&#xff09;面向具备量子计算基础并能使用 Azure Quantum 服务构建和运行量子算法的专业开发者。该认证重点考察开发者在量子编程模型…

作者头像 李华