地址:
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
****************************************************************/