JavaScript实现螺旋矩阵

这个比较有意思吧, 直接上码~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
var N = 9;

//JavaScript二维数组的声明
var a = new Array(); //先声明一维
for (var i = 0; i < N; i++) {

//声明二维,每一个一维数组里面的一个元素都是一个数组;
a[i] = new Array();

//初始化
for (var j = 0; j < N; j++) {

a[i][j] = "";
}
}


function fun(N) {
var i, j, n, num = 1;

for (n = 0; n <= N / 2; n++) {
//上
for (i = n; i <= N - n - 1; i++)
a[n][i] = num++;
//右
for (j = n + 1; j < N - n - 1; j++)
a[j][N - n - 1] = num++;
//下
for (i = N - n - 1; i > n; i--)
a[N - n - 1][i] = num++;
//右
for (j = N - n - 1; j > n; j--)
a[j][n] = num++;
}

}


fun(N);
for (var i = 0; i < N; i++) {
var str = "";
for (var j = 0; j < N; j++) {
str += a[i][j] + " ";
}
console.log(str);

}

测试:

1
2
3
4
5
6
7
8
9
10
//N = 9
1 2 3 4 5 6 7 8 9
32 33 34 35 36 37 38 39 10
31 56 57 58 59 60 61 40 11
30 55 72 73 74 75 62 41 12
29 54 71 80 81 76 63 42 13
28 53 70 79 78 77 64 43 14
27 52 69 68 67 66 65 44 15
26 51 50 49 48 47 46 45 16
25 24 23 22 21 20 19 18 17
文章目录