標籤:
題目1180:對稱矩陣
時間限制:1 秒
記憶體限制:32 兆
特殊判題:否
提交:2518
解決:1295
-
題目描述:
-
輸入一個N維矩陣,判斷是否對稱。
-
輸入:
-
輸入第一行包括一個數:N(1<=N<=100),表示矩陣的維數。
接下來的N行,每行包括N個數,表示N*N矩陣的元素。
-
輸出:
-
可能有多組測試資料,對於每組資料,
輸出"Yes!”表示矩陣為對稱矩陣。
輸出"No!”表示矩陣不是對稱矩陣。
-
範例輸入:
-
416 19 16 6 19 16 14 5 16 14 16 3 6 5 3 16 21 23 4
-
範例輸出:
-
Yes!No!
-
來源:
-
2000年華中科技大學電腦研究生機試真題
1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 using namespace std; 5 int map[105][105]; 6 int main(){ 7 //freopen("D:\\INPUT.txt","r",stdin); 8 int n; 9 while(cin>>n){10 int i,j;11 for(i=1;i<=n;i++){12 for(j=1;j<=n;j++){13 scanf("%d",&map[i][j]);14 }15 }16 for(i=1;i<=n;i++){17 for(j=1;j<=n;j++){18 if(map[i][j]!=map[i][n-j]){19 i=n+2;20 break;21 }22 }23 }24 if(i==n+1){25 cout<<"Yes!"<<endl;26 continue;27 }28 for(i=1;i<=n;i++){29 for(j=1;j<=n;j++){30 if(map[i][j]!=map[n-i][j]){31 i=n+2;32 break;33 }34 }35 }36 if(i==n+1){37 cout<<"Yes!"<<endl;38 continue;39 }40 41 for(i=1;i<=n;i++){42 for(j=1;j<=n;j++){43 if(map[i][j]!=map[j][i]){44 i=n+2;45 break;46 }47 }48 }49 if(i==n+1){50 cout<<"Yes!"<<endl;51 continue;52 }53 54 for(i=1;i<=n;i++){55 for(j=1;j<=n;j++){56 if(map[i][j]!=map[n-j][n-i]){57 i=n+2;58 break;59 }60 }61 }62 if(i==n+1){63 cout<<"Yes!"<<endl;64 continue;65 }66 cout<<"No!"<<endl;67 }68 return 0;69 }
2000年華中科技大學電腦研究生機試真題 對稱矩陣