i840 - 字元矩陣轉置
題目描述
題目要求讀取一個 5x5 的字元矩陣,並將其轉置後輸出。轉置操作是指將矩陣的行和列互換,即原矩陣的第 i 行變成轉置矩陣的第 i 列,反之亦然。
解題思路
這道題目非常簡單,只需要使用二維陣列來儲存輸入的矩陣,然後按照轉置的定義,將原矩陣的元素 a[i][j] 輸出為轉置矩陣的 a[j][i]。由於矩陣大小固定為 5x5,因此可以使用巢狀迴圈遍歷整個矩陣,並進行輸出。
複雜度分析
- 時間複雜度: O(n^2),其中 n 是矩陣的邊長 (在本例中為 5)。需要遍歷整個矩陣一次來進行轉置輸出。
- 空間複雜度: O(1),只使用了固定大小的二維陣列來儲存矩陣,空間使用不隨輸入大小變化。
程式碼
#include <iostream>
using namespace std;
char a[5][5];
int main(){
for(int i=0;i<5;++i)
for(int j=0;j<5;++j)
cin >> a[i][j];
for(int i=0;i<5;++i){
for(int j=0;j<5;++j)
cout << a[j][i];
cout << "\n";
}
}