/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package example1;
import java.util.Scanner;
class MatrixMultiplier {
int p, q, s, r;
static Scanner input = new Scanner(System.in);
void getInput() {
System.out.println("Enter Dimenison of the first Matrix(Etc : 2 2)");
p = input.nextInt();
q = input.nextInt();
System.out.println("Enter Dimenison of the Second Matrix(Etc : 2 2)");
r = input.nextInt();
s = input.nextInt();
if (p != q) {
System.out.println("Matrixs Dimensions mismatch");
getInput();
}
}
int[][] getMatrixA(int p, int q) {
int[][] A = new int[p][q];
System.out.println("Enter Matrix A");
for (int i = 0; i < p; i++) {
for (int j = 0; j < q; j++) {
A[j] = input.nextInt();
}
}
return A;
}
int[][] getMatrixB(int r, int s) {
int[][] B = new int[r];
System.out.println("Enter Matrix B");
for (int i = 0; i < r; i++) {
for (int j = 0; j < s; j++) {
B[j] = input.nextInt();
}
}
return B;
}
int[][] multiply(int[][] A, int[][] B, int p, int q, int s) {
int[][] C = new int[p];
for (int i = 0; i < p; i++) {
for (int j = 0; j < s; j++) {
C[j] = 0;
for (int k = 0; k < q; k++) {
C[j] += A[k] * B[k][j];
}
}
}
return C;
}
void printResult(int[][] C) {
System.out.println("Answer :");
for (int i = 0; i < C.length; i++) {
for (int j = 0; j < C.length; j++) {
System.out.print(" " + C[j]);
}
System.out.println("");
}
}
public static void main(String[] args) {
MatrixMultiplier mm1 = new MatrixMultiplier();
mm1.getInput();
mm1.printResult(mm1.multiply(mm1.getMatrixA(mm1.p,mm1.q),mm1.getMatrixB(mm1.r, mm1.s),
mm1.p,mm1.q,mm1.s));
}
}