藍橋杯:試題 算法提高 矩陣轉置

【問題描述】

給定一個n×m矩陣相乘,求它的轉置。其中1≤n≤20,1≤m≤20,矩陣中的每個元素都在整數類型(4字節)的表示範圍內。
【輸入格式】
  第一行兩個整數n和m;
  第二行起,每行m個整數,共n行,表示n×m的矩陣。數據之間都用一個空格分隔。
【輸出格式】

共m行,每行n個整數,數據間用一個空格分隔,表示轉置後的矩陣。
樣例輸入
2 4
34 76 -54 7
-4 5 23 9
樣例輸出
34 -4
76 5
-54 23
7 9


import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n=scanner.nextInt();  //行數
        int m=scanner.nextInt();  //列數
        int[][] arr1=new int[n][m];
        int[][] arr2=new int[m][n];
        for (int i = 0; i <n ; i++) {
            for (int j = 0; j <m ; j++) {
               arr1[i][j]=scanner.nextInt();  //給數組賦值
            }
        }

        for (int i = 0; i <n ; i++) {
            for (int j = 0; j <m ; j++) {
                  arr2[j][i]=arr1[i][j];      //行列互換
                }
            }

        for (int i = 0; i <m ; i++) {
            for (int j = 0; j <n ; j++) {
                System.out.print(arr2[i][j]+" ");
                if (j==n-1){
                    System.out.println();
                }
            }
        }

        }
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章