地址:
http://ac.jobdu.com/problem.php?pid=1180题目描述:
输入一个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!
来源:
2000年华中科技大学计算机研究生机试真题
解题思路:
一开始看到这题,在看看测试数据,就想着要不要把沿着左上对角线,横轴,纵轴为对称线的情况考虑进去,不过想到题目可能没有这么复杂,就只写了沿右下对角线为对称线的情况,然后居然AC了,觉得题目很不严谨。
源码:
#include<stdio.h>
int n;
int matrix[ 105 ][ 105 ];
int isSymmetry = 1;
int main(){
while( scanf("%d", &n) != EOF ){
for( int i = 0; i < n; i ++ ){
for( int j = 0; j < n; j ++ ){
scanf( "%d", &matrix[ i ][ j ] );
}
}
isSymmetry = 1;
for( int i = 0; i < n; i ++ ){
for( int j = 0; j < n; j ++ ){
if( matrix[ i ][ j ] != matrix[ j ][ i ] ){
isSymmetry = 0;
}
}
}
if( isSymmetry == 1){
printf("Yes!\n");
}
else{
printf("No!\n");
}
}
}
/**************************************************************
Problem: 1180
User: 螺小旋
Language: C++
Result: Accepted
Time:20 ms
Memory:1064 kb
****************************************************************/