<script type="text/javascript">
function Direction(x, y) {
this.x = x;
this.y = y;
}
function generateMatrix(n) {
var dim = Math.ceil(Math.sqrt(n));
//var dim = n;
var cen = Math.ceil(dim / 2) - 1;
var arr = new Array();
for (var i = 0; i < dim; i++) {
arr[i] = new Array();
for(var j = 0; j < dim; j++)
arr[i][j] = 0;
}
var dirs = [];
dirs[0] = new Direction(0, 1);
dirs[1] = new Direction(1, 0);
dirs[2] = new Direction(0, -1);
dirs[3] = new Direction(-1, 0);
var posX = cen;
var posY = cen;
arr[posX][posY] = 1;
var k = 1;
var dirIdx = 0;
var step = 1;
while (k < n) {
for (var i = 0; i < 2; i++) {
for (var j = 0; j < step; j++) {
k++;
if (k > n)
break;
var curDir = (dirIdx) % 4;
arr[posX += dirs[curDir].x][posY += dirs[curDir].y] = k;
}
dirIdx++;
}
step++;
}
document.write('<table>');
for (var i = 0; i < dim; i++) {
document.write("<tr>");
for(var j = 0; j < dim; j++) {
document.write("<td>");
if (arr[i][j] == 0)
document.write('*');
else if (arr[i][j] < 10)
document.write(" " + arr[i][j]);
else
document.write(arr[i][j]);
document.write("</td>");
}
document.write("</tr>");
}
document.write('<table>');
}
generateMatrix(25);
</script>
分享到:
相关推荐
矩阵算法题。这道题主要是类似螺旋的数字排列,从外层1旋转到最中间。 让你更加了解二维数组和矩阵的相关的应用。这里主要是一个逻辑,转过弯就容易了。想了我1天呀。很值得, 很难得,分享给大家,希望对学C的同学...
内螺旋矩阵算法是一种在二维数组中填充数字的特殊方式,其特点是数字按顺时针方向从数组中心向外螺旋式地填充。这种填充模式在数据结构和算法的学习中颇为有趣,因为它涉及到了数组的操作以及对角线元素的处理。在...
包括了分割法和自己想的标记算法 可以通过修改N的值,实现不同大小的矩阵的打印
螺旋矩阵是一种特殊的矩阵布局方式,它的...通过这些步骤,我们可以实现一个C++的螺旋矩阵算法。在压缩包中的源代码文件(未提供具体文件名)应该包含了上述逻辑,读者可以通过阅读代码来理解并学习这个算法的实现。
在探索螺旋矩阵算法时,我们可以从不同的编程语言和实现策略中观察到其多样性和灵活性。本文档将对三种不同的螺旋矩阵实现方法进行详细的比较和分析,包括C语言和C++语言的不同实现方式,以及它们各自的特点和适用...
以下是一个简单的递归算法实现: ```cpp #include using namespace std; void fillSpiral(vector<vector<int>>& matrix, int startRow, int endRow, int startCol, int endCol, vector<int>& nums, int n) { if ...
在给定的VB代码片段中,可以看出它尝试实现一个生成螺旋矩阵的算法。虽然代码不完整,但可以大致理解其逻辑框架。这里提供一个较为完整的螺旋矩阵生成算法的VB实现示例: ```vb Option Explicit Private Sub ...
**螺旋矩阵** 是一种将一个n×n的矩阵按照特定顺序进行遍历的方式。想象一下,你从矩阵的左上角开始,沿着顺时针方向螺旋式地填充或读取矩阵元素。首先,你从左到右填充第一行,然后从上到下填充最后一列,接着逆...
螺旋矩阵是数学和计算机科学中的一个有趣概念,尤其在图形处理和算法设计中有着重要的应用。在MATLAB这个强大的数值计算和矩阵运算平台中,编写螺旋矩阵生成的源程序不仅是一种基础练习,更是深入理解二维数组操作的...
描述中的“螺旋矩阵示例”可能就是这样一个实现,可以提供具体的代码参考。 7. **调试与测试**: 完成螺旋矩阵的代码后,需要进行单元测试以确保矩阵正确生成。可以使用Debug.WriteLine或其他输出方式查看生成的...
例如,一个函数可能用于生成螺旋矩阵,另一个可能用于生成主对角线和副对角线元素相同的对角矩阵。每个函数都会涉及到数组操作,以及根据特定规则移动指针或索引的过程。 在深入研究这些源代码时,我们可以学习到...
以下是一个3×3的螺旋矩阵填充示例: ``` 1 2 3 8 9 4 7 6 5 ``` 在这个例子中,我们可以看到数字从1开始,顺时针填充到9,形成一个外层螺旋。 在实现螺旋矩阵的VC6程序时,我们需要考虑以下几个关键点: 1. ...
螺旋矩阵是计算机编程中一个有趣的问题,尤其在学习C语言数组操作时,它可以作为一个很好的练习案例。螺旋矩阵的特点是元素按照顺时针或者逆时针方向排列,并且按照螺旋的形状填充整个矩阵。这种矩阵在图像处理、...
螺旋矩阵是一种特殊的矩阵排列方式,它从矩阵的左上角开始,沿着顺时针方向填入数字,当遇到边缘时,会转向下一个边界继续填充,直到所有元素都被填充完毕。在编程中,实现螺旋矩阵通常涉及到数组操作和循环控制。 ...
螺旋矩阵是一种特殊的矩阵排列方式,它在编程中常被用作练习数据结构和算法的问题。在C语言程序设计中,创建螺旋矩阵涉及到数组操作、循环控制以及条件判断等基本概念。接下来,我们将深入探讨这些知识点。 1. **...
打印输出螺旋矩阵,要求螺旋矩阵的阶数由用户输入
有螺旋动画”中,我们可以推断出这个程序不仅创建了螺旋矩阵,还可能通过某种方式将其动态展示出来,可能是通过控制台输出或图形用户界面(GUI)的形式,而描述中的“win32程序哦”表明这是一个基于Windows 32位API...
在计算机科学中,螺旋矩阵是一个有趣且具有挑战性的编程练习,它不仅考验程序员的逻辑思维能力,还要求他们对数组和循环结构有深刻的理解。本文将深入探讨螺旋矩阵类代码的实现细节,并提供一个完整的C语言程序示例...
主要介绍了Java实现的打印螺旋矩阵算法,结合完整实例形式详细分析了java打印螺旋矩阵的算法原理与实现技巧,需要的朋友可以参考下