2006程式設計競賽第三題
題目:
Please write a program to multiply two
matrices. You have to write a function to input
two (4x4) matrices and output the multiplied
matrix.
程式碼:
/************************************************
*Please write a program to multiply two
*matrices. You have to write a function to input
*two (4x4) matrices and output the multiplied
*matrix. 
 ************************************************/
import java.util.*;
public class E2006_3{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
    
        int [][] arr = new int[4][4];//宣告4*4陣列
        int [][] numbers = new int[4][4];//宣告4*4陣列
        int [][] output = new int[4][4];
        for(int i=0; i<arr.length ; i++){
            System.out.print("Please input line "+(i+1)+" of first matrix:");
            for(int j=0; j<arr.length ;j++){
                arr[i][j] = sc.nextInt();
            }
        }
        
        for(int i=0; i<arr.length ; i++){
            System.out.print("Please input line "+(i+1)+" of second matrix:");
            for(int j=0; j<arr.length ;j++){
                numbers[i][j] = sc.nextInt();
            }
        }
        matrices(arr, numbers, output);
        print(output);
    }
    /*進行矩陣相乘 */
    public static void matrices(int [][] arr , int [][] arr1 ,int [][] arr2){
        for(int i=0;i<arr2.length;i++){
            for(int j=0;j<arr2[i].length;j++){
                arr2[i][j] = 0;
                for(int k=0; k<arr2[i].length ; k++)
                    arr2[i][j]=arr2[i][j]+arr[i][k]*arr1[k][j];
            }
        }   
    }
    /*印出答案 */
    public static void print(int arr[][]){
        System.out.println("The multiplied matrix is:");
        for(int[] result : arr){ 
            for(int result1 : result){
                System.out.print(result1+" ");
            }
            System.out.println();
        }
    } 
}
ExPlease input line 1 of first matrix: 1 2 5 3 Please input line 2 of first matrix: 1 3 2 4 Please input line 3 of first matrix: 2 3 4 1 Please input line 4 of first matrix: 1 1 2 2 Please input line 1 of second matrix: 2 2 1 3 Please input line 2 of second matrix: 1 1 2 3 Please input line 3 of second matrix: 3 2 1 1 Please input line 4 of second matrix: 1 1 1 1 The multiplied matrix is: 22 17 13 17 15 13 13 18 20 16 13 20 11 9 7 10
心得:
矩陣相乘的原理,要清楚。

留言
張貼留言