1230: 矩阵乘法
时间限制: 1 Sec 内存限制: 128 MB
题目描述
给你两个n*n的矩阵,请计算并输出它们相乘的结果。
输入
第1行:1个数N,表示矩阵的大小(2 <= N <= 100)
第2 - N + 1行,每行N个数,对应M1的1行(0 <= M1[i] <= 1000)
第N + 2 - 2N + 1行,每行N个数,对应M2的1行(0 <= M2[i] <= 1000)
输出
输出共N行,每行N个数,对应M1 * M2的结果的一行。
样例输入
2 1 0 0 1 0 1 1 0
样例输出
0 1 1 0
这个题有个坑:
题上那个例子,矩阵相乘是错的,应该参考下面这个:
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a[][] = new int[n][n];
int b[][] = new int[n][n];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
a[i][j] = sc.nextInt();
}
}
for (int i = 0; i < b.length; i++) {
for (int j = 0; j < b.length; j++) {
b[i][j] = sc.nextInt();
}
}
for (int i = 0; i < b.length; i++) {
for (int j = 0; j < b.length; j++) {
int temp = 0;
for (int k = 0; k < b.length; k++) {
temp += a[i][k]*b[k][j];
}
System.out.print(temp);
System.out.print(" ");
}
System.out.println();
}
}
}
/**************************************************************
Problem: 1230
User: 20161514325
Language: Java
Result: 正确
Time:754 ms
Memory:27836 kb
****************************************************************/