C++ 实现:不大于 9 的正整数 n 对应的 n×n 蛇形方阵生成
```cpp #include <iostream> #include <iomanip> using namespace std; const int MAXN = 10; int matrix[MAXN][MAXN]; int main() { int n; cin >> n; int num = 1; int top = 0, bottom = n - 1, left = 0, right = n - 1; while (top <= bottom && left <= right) { // 从左到右 for (int i = left; i <= right; i++) { matrix[top][i] = num++; } top++; // 从上到下 for (int i = top; i <= bottom; i++) { matrix[i][right] = num++; } right--; if (top <= bottom) { // 从右到左 for (int i = right; i >= left; i--) { matrix[bottom][i] = num++; } bottom--; } if (left <= right) { // 从下到上 for (int i = bottom; i >= top; i--) { matrix[i][left] = num++; } left++; } } // 输出矩阵 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << setw(3) << matrix[i][j]; } cout << endl; } return 0; } ``` 代码解释 1. 定义常量和数组:`MAXN` 定义了矩阵的最大大小,`matrix` 数组用于存储蛇形方阵的元素。 2. 输入处理:读取用户输入的正整数 `n`,表示方阵的大小。 3. 填充矩阵:使用四个变量 `top`、`bottom`、`left` 和 `right` 分别表示当前填充区域的上、下、左、右边界。通过循环,按照顺时针方向依次填充矩阵的元素。 4. 输出矩阵:使用 `setw(3)` 控制每个数字占用 3 个字符的宽度,确保输出格式正确。 复杂度分析 - 时间复杂度:$O(n^2)$,因为需要填充 $n \times n$ 个元素。 - 空间复杂度:$O(n^2)$,主要用于存储矩阵的元素。 ######[AI问答 | 576点数解答 | 2025-11-24 20:35:53]
- 代码填空挑战:完成正态分布、随机数生成及数据处理代码(阿里通义 | 506点数解答 | 2025-03-23 14:32:14)324
- 挑战!完成代码填空解锁数据处理奥秘(字节豆包 | 116点数解答 | 2025-03-26 22:22:15)340
- 挑战填空!完成这段 NumPy 代码实现数据生成与保存(DeepSeek | 178点数解答 | 2025-03-26 22:26:30)403
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)350
- C++ 实现计算指定区间内奇数和的代码及解释(字节豆包 | 315点数解答 | 2026-04-04 11:02:27)5
- C++实现计算指定区间内奇数和(字节豆包 | 197点数解答 | 2026-04-04 11:04:57)4
- 2048位学生早会组方阵,Python编程算出最多完整行数! (DeepSeek | 234点数解答 | 2025-08-15 18:58:16)152
- 核晶学院早会方阵行数计算:Python代码及注意事项揭秘(字节豆包 | 218点数解答 | 2025-12-21 14:40:19)47
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)322
- 5条新春贺语,开启龙年吉祥团圆新篇章!(字节豆包 | 135点数解答 | 2025-01-15 14:43:34)316
- 用 NumPy 查看二维数组维数、行列数并调整为 2 行 6 列(讯飞星火 | 142点数解答 | 2024-10-12 21:48:05)268
- 用 NumPy 查看二维数组维数、行列数并调整为 2 行 6 列(百度文心 | 451点数解答 | 2024-10-12 21:54:35)272