n n階矩陣逆時針輸出

2021-06-06 01:31:36 字數 933 閱讀 8300

問題描述:

n*n階矩陣逆時針輸出。即:

輸入:5

輸出:01 16 15 14 13

02 17 24 23 12

03 18 25 22 11

04 19 20 21 10

05 06 07 08 09

思路:經分析,可以發現此題輸出格式猶如轉圈圈。當n為偶數的時候剛好轉了n/2圈;當n為奇數的時候,同樣也是轉了n/2圈,因為n/2取整。又根據轉圈特色,可以把轉圈分為向下、向右、向上、向左分別去實現。這時注意n為奇數時有個正中心點。

/*c++實現逆時針旋轉的矩陣*/

#include#includeusing namespace std;

#define n 1000

int a[n][n];

void fun(int n)

for(j=n-i-1;j>i;j--)//向左

}if(n%2==1)//注意!當n為奇數時,有個正中心點

a[n/2][n/2] = m;

for(i=0;i>n;

fun(n);

return 0;

}

那麼如果順時針輸出的話也同樣很容易就可以解決了。

/*c++實現順時針旋轉的矩陣*/

#include#includeusing namespace std;

#define n 100

int a[n][n];

void fun(int n)

for(j=n-i-1;j>i;j--)//向上

}if(n%2==1)//注意!當n為奇數時,有個正中心點

a[n/2][n/2] = m;

for(i=0;i>n;

fun(n);

return 0;

}

N N矩陣旋轉問題 順時針,逆時針

方法一 對於矩陣旋轉可以將其分塊,具體來說就是分為 上 下 左 右 四個部分。比如將其順時針旋轉90度,可以先把上部分儲存留用,然後把左部分賦值給上部分 此時上部分已經有備份留用的了 下部分賦值給左部分,右部分賦值給下部分,儲存的上部分的備份賦值給右部分。簡言之,左 上,下 左,右 下,儲存 右。上...

逆時針列印矩陣

逆時針列印矩陣,輸出結果如下圖 源 如下 includeusing namespace std void printmatrixincircle int matrix,int m,int n,int start void printnumber int number 逆時針列印矩陣 void pri...

虎牙安卓筆試 矩陣逆時針輸出

參考部落格 將矩陣分層,總共可以形成 min m 2,n 2 層。每層分為左 下 右 上四邊,按左下右上順序迴圈輸出各層。若min m n 為奇數,最後還有一部分不能構成層,需要特別處理。原來這題還是金山的筆試題 灬 灬 include include includeusing namespace ...