騰訊筆試題 蛇形矩陣

2021-07-11 01:01:37 字數 988 閱讀 1258

題目: 蛇形矩陣,是由1開始的自然數一次排列成的n*n的正方形矩陣,數字依次由外而內的遞增,如下面例項:

n=3時:

1 2 3

8 9 4

7 6 5

n=6時:

1 2 3 4 5 6

20 21 22 23 24 7

19 32 33 34 25 8

18 31 36 35 26 9

17 30 29 28 27 10

16 15 14 13 12 11

要求:輸入蛇形矩陣寬度,輸出蛇形矩陣結果。

將矩陣像剝洋蔥一樣,層層剝離,每一次迴圈為矩陣的這一層賦值,若矩陣寬度為偶數,則矩陣無心,若寬度為奇數,則矩陣有心(單獨的乙個數),對於這種情況需要單獨處理。

#includeusing namespace std;

void print(int n)

intcircle = 0;//迴圈次數

int v = 1;//矩陣初值

int i = 0, j = 0;

while (n-2

*circle>=2)//以n-2*circle作為mark,若矩陣寬度為偶數,mark取到2時,矩陣賦值結束;若矩陣寬度為奇數,mark會取到1,此時需要單獨處理。

j--;

i++;

for (i; i < n-circle; i++)

i--;

j--;

for (j; j >= circle; j--)

j++;

i--;

for (i; i > circle; i--)

i++;

circle++;

}if (n-2

*circle == 1)

for (i = 0; i < n; i++)//輸出矩陣

cout << endl;

}}int main( )

騰訊2016實習筆試 n階蛇形矩陣

題目描述 輸入乙個整數n,從上到下 從左到右列印n階蛇形矩陣。例如輸入整數4,輸出為 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 分析 生成乙個n階初始值為0的矩陣,從 0 0 位置開始依次向右 向下 向上 向左移動,每移動一次,填充乙個自增1的數。移動方向變化的條...

騰訊2016筆試題(螺旋矩陣)

問題描述 輸入乙個整數n,輸出n階方陣,也即n n的矩陣 如 n 4,輸出如下 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 可以看成是數列一層一層往裡增加 最外面一層可以分為四段 1 2 3 a 4 5 6 b 7 8 9 c 10 11 12 d 同理,裡面一層分...

騰訊筆試題

一.單選題 每題4 分,15題,共60分 1.考慮函式原型void hello int a,int b 7,char pszc 下面的函式呼叫鐘,屬於不合法呼叫的是 a hello 5 b.hello 5,8 c.hello 6,d.hello 0,0,2.下面有關過載函式的說法中正確的是 a.過載...