<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的值,实现不同大小的矩阵的打印
以面向对象的思想及普通算法各写了这个算法,有源代码,可以比较两种方法的区别。这样更容易了解JAVA面向对象思想的优点与便捷。
c++面试题,螺旋矩阵递归算法实现及动态内存分配
螺旋矩阵算法对比.doc
对于奇数阶和偶数阶的外螺旋矩阵,分别找到他们的螺旋起点,即1的位置,依次向左、下、右、上执行由阶数决定的循环,对该位赋值为前一数值加1。
输出螺旋矩阵的VB程序,共学习VB程序设计的复杂算法编程
有两个算法,螺旋矩阵和折线矩阵的实现,可以自己输入(n×n)矩阵的n值。
打印输出螺旋矩阵,要求螺旋矩阵的阶数由用户输入
主要介绍了Java实现的打印螺旋矩阵算法,结合完整实例形式详细分析了java打印螺旋矩阵的算法原理与实现技巧,需要的朋友可以参考下
主要介绍了C语言解决螺旋矩阵算法问题的代码示例,螺旋矩阵中的数字由第一行开始到右边不断变大,向下变大,向左变大,向上变大,如此循环...需要的朋友可以参考下
在上面写下一个长度为n的只由"E"、"O"、"F"三种字符组成的字符串(可以 只有其中-种或两种字符,但绝对不能有其他字符),阿牛同时禁止在串中出 现0相邻的情况,他认为,"0O"看起 来就像发怒的眼睛,效果不好。 你,...
主要介绍了Python实现螺旋矩阵的填充算法,结合实例形式分析了Python实现螺旋矩阵的相关循环、遍历、判断、运算等操作技巧,需要的朋友可以参考下
请设计算法完成螺旋阵的输出,具有要求为:输入一个m行n列的矩阵,按顺时针螺旋顺序输出矩阵中的所有元素。 【输入】 第1行输入两个正整数m和n,表示m行n列的矩阵; 从第2行开始按行输入该矩阵的所有元素。 【输出】...
螺旋矩阵.md
代码随想录算法训练营第一天- 977.有序数组的平方 , 209.长度最小的子数组,59.螺旋矩阵II
螺旋矩阵 II.md
螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,向左变大,向上变大,如此循环。 如图: 实现效果 实现代码 (function() { var map = (function() { function map(n) { this...