1050 螺旋矩陣 (25分)
阿新 • • 發佈:2020-08-05
題目
本題要求將給定的 N 個正整數按非遞增的順序,填入“螺旋矩陣”。所謂“螺旋矩陣”,是指從左上角第 1 個格子開始,按順時針螺旋方向填充。要求矩陣的規模為 m 行 n 列,滿足條件:m×n 等於 N;m≥n;且 m−n 取所有可能值中的最小值
輸入格式
輸入在第 1 行中給出一個正整數 N,第 2 行給出 N 個待填充的正整數。所有數字不超過 10^4,相鄰數字以空格分隔。
輸出格式
輸出螺旋矩陣。每行 n 個數字,共 m 行。相鄰數字以 1 個空格分隔,行末不得有多餘空格。
輸入樣例:
12
37 76 20 98 76 42 53 95 60 81 58 93
輸出樣例:
98 95 93 42 37 81 53 20 76 58 60 76
解析
先求出螺旋矩陣的行數和列數m,n,然後從最外圈左上角第一個開始順時針填充,填充的圈數 = m/2 + 0.5(行數/2的四捨五入)輸入資料儲存在a,排序以後一圈一圈填進re,難點就在填充的時候for迴圈的起點終點和臨界情況的處理
填一圈需要四個for來填填4條邊,起點終點受圈數影響,注意到寫出來就是時間問題了,相信你