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
心得:
矩陣相乘的原理,要清楚。

留言
張貼留言