PAT A1050 螺旋矩陣

2021-10-05 05:04:53 字數 1110 閱讀 3814

本題需要解決兩個問題:①得到螺旋矩陣的寬col和高row②輸出矩陣

對於問題①,由於高度》=寬度,固將高度設定成row=(int)ceil(sqrt(n*1.0));然後不斷row++,直到n%row==0。其中ceil向上取整

對於問題②,先將輸出的內容列印在二維陣列中,然後輸出二維陣列即可。其中列印二維陣列的方式為一圈一圈列印,具體見**。

#include

using

namespace std;

const

int n=

10010

;int arr[n]

,ans[n]

[n];

bool

cmp(

int a,

int b)

intmain()

int col=n/row,i=

1,j=

1,now=0;

int u=

1,d=row,l=

1,r=col;

while

(now

while

(now

while

(nowl)

while

(nowu)

u++,d--

,l++

,r--

; i++

,j++

;//列印完一圈,進入裡面一圈

}for

(int i=

1;i<=row;i++

)printf

("\n");

}return0;

}

1050 螺旋矩陣 25

測試點2與6沒過 主要的點是 1 求得m與n,這個我是從1到一直到數的一半試的 2 構造螺旋矩陣,使用的是一圈一圈的方法,就是先把最外面的一圈填上,然後再填裡面的一圈,對於最後可能剩下的單獨一列,則是使用的列表是否為空來判斷,因為我把排好序的元素從列表中乙個個的彈出,然後放到矩陣中。未完待續。imp...

1050 螺旋矩陣 25

1050.螺旋矩陣 25 本題要求將給定的n個正整數按非遞增的順序,填入 螺旋矩陣 所謂 螺旋矩陣 是指從左上角第1個格仔開始,按順時針螺旋方向填充。要求矩陣的規模為m行n列,滿足條件 m n等於n m n 且m n取所有可能值中的最小值。輸入格式 輸入在第1行中給出乙個正整數n,第2行給出n個待填...

PTA 1050 螺旋矩陣

include include include include includeusing namespace std bool cmp int a,int b int main cout a m,vector n int count 1 int k 0 int t 0,i,j int c m 2 m...