輸出螺旋矩陣 三

2021-08-22 03:49:22 字數 1550 閱讀 6271

輸出這樣的二維陣列:

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 ...