題目:要求輸入兩個矩陣求出它們相乘的結果
輸入格式:第一行爲第一個矩陣的行和列,然後輸入這個矩陣,接下來一行輸入第二個矩陣的行和列接下來輸入第二個矩陣。
輸出格式:第三個矩陣
例如:
輸入:
輸出:
代碼如下:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int ai = scanner.nextInt(); // 矩陣a的行
int aj = scanner.nextInt(); // 矩陣a的列
int[][] a = new int[ai][aj];
// 輸入矩陣a
for (int i = 0; i < ai; i++) {
for (int j = 0; j < aj; j++) {
a[i][j] = scanner.nextInt();
}
}
// 輸入矩陣b
int bi = scanner.nextInt(); // 矩陣b的行
int bj = scanner.nextInt(); // 矩陣b的列
int[][] b = new int[bi][bj];
for (int i = 0; i < bi; i++) {
for (int j = 0; j < bj; j++) {
b[i][j] = scanner.nextInt();
}
}
int[][] c= new int[ai][bj];
// 計算c (c爲矩陣a和矩陣b相乘)
// sum爲矩陣c中的每一個數
int sum = 0;
// 理解矩陣相乘的規律
// i控制行,j控制列,k爲相稱想加的參數
for (int i = 0; i < ai; i++) {
for (int j = 0; j < bj; j++) {
for (int k = 0; k < bi; k++) {
sum = sum + a[i][k]*b[k][j];
}
c[i][j] = sum;
sum = 0; // sum初始化
}
}
// 輸出矩陣c
for (int i = 0; i < ai; i++) {
for (int j = 0; j < bj; j++) {
System.out.print(c[i][j]+" ");
}
System.out.println();
}
}