矩陣特殊列印與旋轉

2021-10-02 21:40:43 字數 3219 閱讀 4315

題意:

給定n,m表示矩陣的行與列,已經整個矩陣的值,然後按照順時針方向列印該矩陣。

例:題解:

可以將每列印一圈看成乙個週期;

即:第一步:從左到右列印;

第二步:從上到下列印;

第三步:從右到左列印;

第四步:從下到上列印;

其中對於每個週期,第一步肯定是會進行的,但是其他步驟不一定會進行,於是加以特判,具體見**:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define lowbit(x) x&(-x)

#define ll long long

#define inf 0x3f3f3f3f

using

namespace std;

const

double pi=

3.14159

;const

int maxn=

1e5;

const

int mod=

1e3;

int mp[

210]

[210];

int n,m;

vector<

int>ve;

//存結果

void

printonecircle

(int start)

//從上到下

if(start

}//從右到左

if(start

}//從下到上

if(start

}}intmain()

}int start=0;

while

(n>=

2*start&&m>=

2*start)

printf

("%d"

,ve[0]

);for(

int i=

1;isize()

;i++

) cout<

return0;

}

題意:給定n,m表示矩陣的行與列,已經整個矩陣的值,然後按照之字型列印該矩陣。

題解:

該題解參考於這篇部落格:

先是row1和col2變化,當row1 == row-1時,col1變化;col2==col-1時,row2變化

注意一點是:在進行如下操作時,前邊的兩組,判斷條件是row1,且它還要變化,所以應該是col1先使用條件

下邊兩組同理。

具體見**:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define lowbit(x) x&(-x)

#define ll long long

#define inf 0x3f3f3f3f

using

namespace std;

const

double pi=

3.14159

;const

int maxn=

1e5;

const

int mod=

1e3;

int mp[

210]

[210];

int n,m;

void

printlevel

(int row1,

int col1,

int row2,

int col2,

bool flag)

}//從上往下

else}}

void

print()

}int

main()

}print()

;printf

("\n");

return0;

}

題意:給定n表示矩陣大小為n*n,然後給出矩陣各個位置的值

求該矩陣按照順時針方向旋轉90度後的矩陣

題解:

尋找下規律後能發現:

b[i][j]=a[n-1-j][i]

(其中a表示原矩陣、b表示旋轉後得到的矩陣)

i,j均從0開始

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define lowbit(x) x&(-x)

#define ll long long

#define inf 0x3f3f3f3f

using

namespace std;

const

double pi=

3.14159

;const

int maxn=

1e5;

const

int mod=

1e3;

int a[

210]

[210];

int n;

int b[

210]

[210];

intmain()

}for

(int i=

0;ifor(

int i=

0;i}return0;

}

旋轉列印矩陣 旋轉儲存矩陣 之字形列印矩陣

題目 輸入乙個矩陣,按照從外向裡以順時針順序依次列印出每乙個數字。例如 如果輸入如下矩陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 有三問 1 如何實現轉圈列印矩陣?2 如何實現順時針旋轉矩陣?3 如何實現 之 字形列印矩陣?題外話 由於要列印輸出矩陣,從題目可以...

列印旋轉矩陣

給定乙個整形矩陣matrix,請按照旋轉的方式列印它 例如 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 列印結果為 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10 本題在演算法上沒有難度,關鍵在於設計一種邏輯容易理解 易於實現的轉圈遍歷...

列印矩陣 旋轉矩陣 矩陣查詢(c )

2 旋轉正方形矩陣 vector方法 後續更新 3 之列印 後續更新 4 矩陣查詢 後續更新 不能想如何進行座標位置變換到下乙個,很難。應該考慮資料狀況,從巨集觀上進行分解。若傳入陣列為二維 int a,且不能確定長和寬。way1 下面方法也能獲取長度 1 int lines sizeof a si...