## Given two matrices, this function will multiply the two matrices and prints the result. Here, necessary and sufficient condition is the number of columns in A should be equal to the number of rows in matrix B.

### Example

**INPUT**

A[4][4] = { {1, 1, 1, 1},

{1, 6, 7, 6},

{6, 3, 7, 12},

{4, 4, 4, 4}};

B[4][4] = { {1, 1, 1, 1},

{2, 2, 2, 2},

{3, 3, 3, 3},

{4, 9, 1, 7}};

**OUTPUT**

10 15 7 13

58 88 40 76

81 141 45 117

40 60 28 52

In the above example, we got the first element in output by multiplying all the respective elements in first row of matrix A with the elements in the first column of matrix B and adding them. Similarly for the second element in first row of the output, we need to take first row of matrix A and second column of matrix B. In this way we got all the elements in output matrix

**Time Complexity: O(n^3),**

here n is the size of the matrix

## Algorithm

1. Simply run three loops

2. Loop for each row in matrix A with variable i

3. Inside the above loop, Loop for each column in matrix B with variable j

4. Inside the above two loops, Loop for each row element in matrix A with variable k and each column element in matrix B with variable k ie, A[i][k] and B[k][j] .

5. we will find the product of each row element in A with each colum element in B. ie, A[i][k] * B[k][j] and add all the products and store in new matrix C ie, C[i][j]

6. matrix C is the multiplication output

## C++ Program

#include <bits/stdc++.h> using namespace std; #define N 4 int main() { int A[N][N] = { {1, 1, 1, 1}, {1, 6, 7, 6}, {6, 3, 7, 12}, {4, 4, 4, 4}}; int B[N][N] = { {1, 1, 1, 1}, {2, 2, 2, 2}, {3, 3, 3, 3}, {4, 9, 1, 7}}; int C[N][N]; for(int i=0; i <N; i++) { for(int j=0; j<N; j++) {int sum = 0; for(int k=0;k<N;k++) { sum += A[i][k] * B[k][j]; } C[i][j] = sum; cout <<C[i][j] <<" "; } cout<<endl; } return 0; }

Try It