close
Content
現在給你一個正方形矩陣M。
M矩陣的元素為Mij:{0 < i < n,0 < j < n}。
在這個問題中,您必須找出給定的矩陣是否對稱(symmetric)。
定義:對稱矩陣所有元素都是非負的並且相對於該矩陣的中心對稱。
任何其他矩陣都被認為是非對稱的。
你要做的就是判斷這個矩陣是否對稱。
矩陣內的元素範圍為-2^32 <= Mij <= 2^32 且 0 < n <= 100。
Input
輸入的第一行包含一個數字T (T <= 300),代表測資的數量。
每組測試資料的第一行包含兩個字元一個整數n,n代表這個正方矩陣的維度。
接下來的n行即為這個矩陣內的元素數值。
每一列i有n個數字,第i列的第j個數字即是Mij。
Output
對每一筆測試資料輸出一行"Test #t: S",t為第幾筆測試資料的編號,S為答案字串。
如果輸入的矩陣是對稱矩陣,S = "Symmetric"。
如果輸入的矩陣不是對稱矩陣,S = "Non-symmetric"。
Sample Input #1
2 N = 3 5 1 3 2 0 2 3 1 5 N = 3 5 1 3 2 0 2 0 1 5
Sample Output #1
Test #1: Symmetric. Test #2: Non-symmetric.
python:
n=int(input()) for t in range(n): p=True no=list(input()[::1]) n=int(''.join(no[4:])) #print(no) arr=[] for i in range(n): arr00=list(map(int,input().split())) arr.append(arr00) #print(arr) for i in range(n): for j in range(n): """ 其實這邊我寫i-n,j-n,他會有重複的狀況 像是arr[i][j]為左上角時,arr[n-1-i][n-1-j]為右下角, 但他又會去計算到arr[i][j]為右下角時,arr[n-1-i][n-1-j]為左上角,(重複!!!!) 所以努以寫成 for i in range(n): for j in range(i,n): 就可以避免重複了 """ if arr[i][j]<0 or arr[n-1-i][n-1-j]<0: p=False break if arr[i][j]!=arr[n-1-i][n-1-j]: p=False break if p==False:break if p==False:print(f'Test #{t+1}: Non-symmetric.') else:print(f'Test #{t+1}: Symmetric.')
文章標籤
全站熱搜
留言列表