## 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;
}
```