import
java.util.*;
public
class
Matrix {
int
arr[][];
int
N;
public
Matrix(
int
n)
{
N = n;
arr =
new
int
[N][N];
}
void
input(List<List<Integer> > A)
{
for
(
int
i =
0
; i < N; i++) {
for
(
int
j =
0
; j < N; j++) {
arr[i][j] = A.get(i).get(j);
}
}
}
void
display()
{
for
(
int
i =
0
; i < N; i++) {
for
(
int
j =
0
; j < N; j++) {
System.out.print(arr[i][j] +
" "
);
}
System.out.println();
}
}
void
add(Matrix x)
{
int
mat[][] =
new
int
[N][N];
for
(
int
i =
0
; i < N; i++) {
for
(
int
j =
0
; j < N; j++) {
mat[i][j] = arr[i][j] + x.arr[i][j];
}
}
for
(
int
i =
0
; i < N; i++) {
for
(
int
j =
0
; j < N; j++) {
System.out.print(mat[i][j] +
" "
);
}
System.out.println();
}
}
void
subtract(Matrix x)
{
int
mat[][] =
new
int
[N][N];
for
(
int
i =
0
; i < N; i++) {
for
(
int
j =
0
; j < N; j++) {
mat[i][j] = arr[i][j] - x.arr[i][j];
}
}
for
(
int
i =
0
; i < N; i++) {
for
(
int
j =
0
; j < N; j++) {
System.out.print(mat[i][j] +
" "
);
}
System.out.println();
}
}
public
void
multiply(Matrix x)
{
int
[][] mat =
new
int
[N][N];
for
(
int
i =
0
; i < N; i++) {
for
(
int
j =
0
; j < N; j++) {
mat[i][j] =
0
;
for
(
int
k =
0
; k < N; k++) {
mat[i][j] += arr[i][k] * (x.arr[k][j]);
}
}
}
for
(
int
i =
0
; i < N; i++) {
for
(
int
j =
0
; j < N; j++) {
System.out.print(mat[i][j] +
" "
);
}
System.out.println();
}
}
public
static
void
main(String[] args)
{
int
N =
3
;
List<List<Integer> > arr1 = Arrays.asList(
Arrays.asList(
1
,
2
,
3
), Arrays.asList(
4
,
5
,
6
),
Arrays.asList(
1
,
2
,
3
));
List<List<Integer> > arr2 = Arrays.asList(
Arrays.asList(
1
,
2
,
3
), Arrays.asList(
4
,
5
,
16
),
Arrays.asList(
1
,
2
,
3
));
Matrix mat1 =
new
Matrix(N);
Matrix mat2 =
new
Matrix(N);
mat1.input(arr1);
mat2.input(arr2);
System.out.println(
"Addition of two given Matrices is : "
);
mat1.add(mat2);
System.out.println(
"Subtraction of two given Matrices is : "
);
mat1.subtract(mat2);
System.out.println(
"Multiplication of two given Matrices is : "
);
mat1.multiply(mat2);
}
}