题目1180:对称矩阵
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:2518
解决:1295
题目描述:输入一个N维矩阵,判断是否对称。输入:输入第一行包括一个数:N(1<=N<=100),表示矩阵的维数。
接下来的N行,每行包括N个数,表示N*N矩阵的元素。输出:可能有多组测试数据,对于每组数据,
输出"Yes!”表示矩阵为对称矩阵。
输出"No!”表示矩阵不是对称矩阵。样例输入:4
16 19 16 6
19 16 14 5
16 14 16 3
6 5 3 16
2
1 2
3 4样例输出:Yes!
No!
1 #include
2 #include
3 #include
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<
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<
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<
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<
64 continue;
65 }
66 cout<
67 }
68 return 0;
69 }
来源:https://www.cnblogs.com/Deribs4/p/4599039.html