題目: 蛇形矩陣,是由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.過載...