問題描述:
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 ...