螺旋方針(螺旋矩陣)

2021-07-28 13:14:05 字數 1126 閱讀 5908

螺旋方陣

time limit: 1000ms memory limit: 65536kb

problem description

n×n的螺旋方陣當n=5和n=3時分別是如下的形式

請給出乙個程式,對於任意的輸入n(0<n<11),輸出按照上面規律所獲得的n×n的螺旋方陣。

input

輸入第一行為整數m(0<m<10),代表有m組輸入;

接下來是m行資料,每行輸入乙個n(0<n<11)。

output

按照輸入的次序,依次輸出每乙個n×n方陣(乙個方陣的同一行資料之間以』\t』分隔)

兩個輸出方陣之間輸出乙個空行。

example input1 4

example output

1   2   3   4

12  13  14  5

11  16  15  6

10 9  8   7

hint

author

螺旋矩陣我表示已經翻皮水。。。只能上網找**了,還沒有理解完全

#include

#include

int k = 1;

void luoxuan(int a[11], int n, int x, int y)

for(i = x; i < x+n-1; i++)

a[y][i] = k++;

for(i = y; i < y+n-1; i++)

a[i][x+n-1] = k++;

for(i = x + n - 1; i > x; i--)

a[y+n-1][i] = k++;

for(i = y + n - 1; i > y; i--)

a[i][x] = k++;

luoxuan(a, n - 2, x + 1, y + 1);

}int main()

for(z = 0; z < m; z++)

}if(z != m - 1)printf("\n");

}return

0;}

我感覺那個x+n-1是因為n-2而x+1這樣可以平衡那多減去的1.。。。鬼知道對不對(攤手)

列印螺旋矩陣

首先,看一下螺旋矩陣的樣子.如下圖 求螺旋陣列的 如下 dev cpp平台 include using namespace std int alloc mat int round 動態二維陣列的分配 void del mat int mat,int round 刪除動態分配的二維陣列 void pr...

螺旋矩陣 解法

void fun1 else if up right else int sum 0 將現在數值的外面每一層的數值都加起來 if n 2 0 for int k 0 k max level level k sum 8 max level k 4 else for int k 0 k max level...

輸出螺旋矩陣

螺旋矩陣 是指乙個呈螺旋狀的矩陣,它的數字由第一行開始到右邊不斷變大,向下變大,向左變大,向上變大,如此迴圈。如圖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 ...