给一个正整数n,输出一个n*n的螺旋矩阵
螺旋矩阵可以是逆时针也可以是顺时针,也可以是从里到外,也可以是从外到里
顺时针,从外到里:
#include <iostream>
using namespace std;
const int _N = 100;
int matrix[_N][_N];
//思想:递归每一圈
/*
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
*/
void setMatrix(int x, int y, int start, int n)
{
int i;
if(n <= 0)
return;
if(n == 1)
{
matrix[x][y] = start;
return;
}
for(i = x; i < x + n - 1; i++) //左边
matrix[i][y] = start++;
for(i = y; i < y + n - 1; i++) //下边
matrix[n + x - 1][i] = start++;
for(i = x + n - 1; i > x; i--) //右边
matrix[i][n + y - 1] = start++;
for(i = y + n - 1; i > y; i--) //上边
matrix[x][i] = start++;
setMatrix(x + 1, y + 1, start, n - 2);
}
int main()
{
int n, i, j;
while(cin>>n)
{
setMatrix(0, 0, 1, n);
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
printf("%4d", matrix[i][j]);
}
cout<<endl;
}
}
return 0;
}

- 大小: 9.7 KB
分享到:
相关推荐
### 一、螺旋矩阵的基本概念 螺旋矩阵是指一种按照螺旋顺序填充数字的二维数组。在该矩阵中,数字从中心或某一固定位置开始向外以螺旋的形式逐渐增加。例如,一个3x3的螺旋矩阵可能如下所示: ``` 1 2 3 8 9 4 7 6 ...
螺旋矩阵是数学和计算机科学中的一个有趣概念,尤其在图形处理和算法设计中有着重要的应用。在MATLAB这个强大的数值计算和矩阵运算平台中,编写螺旋矩阵生成的源程序不仅是一种基础练习,更是深入理解二维数组操作的...
螺旋矩阵是一种特殊的矩阵排列方式,它从矩阵的最外层开始,按照顺时针或逆时针方向螺旋式地填充元素。在VB.NET编程环境中,实现螺旋矩阵可以帮助开发者理解和掌握数组操作、循环控制以及基本算法设计。以下是关于...
### 螺旋矩阵的实现 #### 知识点概览 本文将详细介绍如何使用C语言来实现一个螺旋矩阵,并按顺序输出从A到Z的字符。本例中,我们首先定义了一个固定大小的矩阵(这里设为10x10),然后根据用户输入的行数m和列数n...
螺旋矩阵是一种特殊的矩阵排列方式,它从矩阵的左上角开始,沿着顺时针方向填入数字,当遇到边缘时,会转向下一个边界继续填充,直到所有元素都被填充完毕。在编程中,实现螺旋矩阵通常涉及到数组操作和循环控制。 ...
螺旋矩阵是一种特殊的二维数组布局,它将数字按照顺时针或逆时针的螺旋路径填入矩阵中。这种数据结构在编程中常用于解决特定问题,例如数组操作、图形渲染等。在“螺旋矩阵VC6”中,我们讨论的是使用Visual C++ 6.0...
螺旋矩阵是一种特殊的矩阵排列方式,它在编程中常被用作练习数据结构和算法的问题。在C语言程序设计中,创建螺旋矩阵涉及到数组操作、循环控制以及条件判断等基本概念。接下来,我们将深入探讨这些知识点。 1. **...
螺旋矩阵是计算机编程中一个有趣的问题,尤其在学习C语言数组操作时,它可以作为一个很好的练习案例。螺旋矩阵的特点是元素按照顺时针或者逆时针方向排列,并且按照螺旋的形状填充整个矩阵。这种矩阵在图像处理、...
在C++编程中,螺旋矩阵是一种特殊的二维数组,它的元素按照顺时针或者逆时针方向螺旋式地填充。在给定的标题“c++实现在螺旋矩阵,有螺旋动画”中,我们可以推断出这个程序不仅创建了螺旋矩阵,还可能通过某种方式将...
螺旋矩阵时间限制: 1000ms 内存限制: 64000kB 描述 螺旋数组: 打印方阵为5的螺旋矩阵为 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 输入 5 输出 矩阵 样例输入 5 样例...
螺旋矩阵是一种特殊的二维数组,它的元素按照顺时针或逆时针方向螺旋式地填充。在Java编程中,实现螺旋矩阵通常涉及到二维数组的操作和控制流的管理。下面我们将详细探讨如何使用Java来实现螺旋矩阵。 首先,我们...
螺旋矩阵是一种特殊的矩阵,它的元素按照顺时针或者逆时针的方向螺旋式地填充。在C++编程中,实现螺旋矩阵的输出是一项基础且有趣的任务,尤其在VC(Visual C++)环境下,我们可以利用标准模板库(STL)以及基本的...
用C语言实现了螺旋矩阵,其中n。如输入4,则会输出4*4的螺旋矩阵
在计算机科学中,螺旋矩阵是一个有趣且具有挑战性的编程练习,它不仅考验程序员的逻辑思维能力,还要求他们对数组和循环结构有深刻的理解。本文将深入探讨螺旋矩阵类代码的实现细节,并提供一个完整的C语言程序示例...
螺旋矩阵在数学和计算机科学领域具有广泛的应用,它不仅能够锻炼编程者对二维数组操作的能力,还能加深对算法设计和边界条件处理的理解。C语言作为一门经典且功能强大的编程语言,是实现此类矩阵生成的极佳选择。...
螺旋矩阵是一种特殊的矩阵布局方式,它的特点是元素按照顺时针或逆时针的螺旋路径填充。在C++中实现螺旋矩阵算法,可以分为以下几个关键步骤: 1. **初始化**: 创建一个二维数组,其大小根据矩阵的阶数确定。阶数...
螺旋矩阵是一种特殊的矩阵排列方式,它的特点是按照顺时针或者逆时针方向填充数字,形成一个螺旋状。在给定的C++源代码中,实现了一个生成螺旋矩阵的程序。以下是对这段代码的详细解释: 1. **常量定义**: `const...
内螺旋矩阵算法是一种在二维数组中填充数字的特殊方式,其特点是数字按顺时针方向从数组中心向外螺旋式地填充。这种填充模式在数据结构和算法的学习中颇为有趣,因为它涉及到了数组的操作以及对角线元素的处理。在...
### 螺旋矩阵问题分析与解法 #### 一、题目背景与要求 螺旋矩阵问题是NOIP2014普及组的一个经典编程题目。题目要求在给定一个正方形矩阵大小`n`以及矩阵中的某一点`(i, j)`的情况下,求出该点上的数字。这里所说的...
1.题目: n阶螺旋矩阵问题 题目描述: 创建n阶螺旋矩阵并输出。 2、阿牛的EOF牛肉串 题目描述: 今年的ACM集训队有一个叫做EOF的队伍,由阿牛、XC以及COY组 成。在共同的集训生活中,大家建立了深厚的友谊,阿牛准备做...