輸出這樣的二維陣列:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
分析:填充如此乙個n*n陣列 ,先觀察規律:
n=1
1n=2
1 24 3
對於n*n陣列,可以先將1-4*n 填充四周,內部用乙個(n-2)*(n-2) 的陣列加上4*(n-1)填充,
所以用遞迴比較直觀,**如下:
private sub command1_click()
dim result() as long, i as long, maxlen as long
for i = 1 to 18
maxlen = len(cstr(i * i)) + 1
spiral i, result
for j = 0 to i ^ 2 - 1
if j mod i = 0 then debug.print
debug.print right(space(maxlen) & result(j), maxlen);
next
debug.print
next
end sub
sub spiral(byval n as integer, byref result() as long)
dim temp() as long, i as long, j as long
if n = 1 then
redim result(0)
result(0) = 1
end if
if n = 2 then
redim result(3)
result(0) = 1
result(1) = 2
result(2) = 4
result(3) = 3
end if
if n > 2 then
redim result(n ^ 2 - 1)
for i = 1 to n - 1
result(i - 1) = i
result(i * n - 1) = i + n - 1
result(n * n - i) = i + 2 * (n - 1)
result(n * n - i * n) = i + 3 * (n - 1)
next
spiral n - 2, temp
for i = 0 to (n - 2) ^ 2 - 1
result(n + 1 + n * (i \ (n - 2)) + i mod (n - 2)) = temp(i) + 4 * (n - 1)
next
end if
end sub
輸出:1
1
2
4
3
1
2
3
8
9
4
7
6
5
輸出螺旋矩陣
螺旋矩陣 是指乙個呈螺旋狀的矩陣,它的數字由第一行開始到右邊不斷變大,向下變大,向左變大,向上變大,如此迴圈。如圖1 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 輸出螺旋矩陣 author zhanliqing ...
輸出螺旋矩陣
關於螺旋矩陣的說法不一,這裡指的是形如 21 22.20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 17 16 15 14 13 的矩陣。問題有兩個 1.程式設計實現輸出這個矩陣 2.設1點的座標是 0,0 x方向向右為正,y方向向下為正.例如 7的座標為 1,1 2的座標為...
矩陣螺旋輸出
劍指 offer 29.順時針列印矩陣 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。1.用行增量和列增量決定下一步方向 2.到達邊界時,換方向 同時縮小邊界條件 3.當左右邊界,上下邊界重合時了,完成全部遍歷 param matrix return var spiralorder ...