/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Matrixmultiplication
{
public static void main
( String [ ] args
) {
Scanner scan
= new Scanner
( System .
in ) ; int [ ] [ ] a,b,c;
int size;
System .
out .
print ( "Enter the Size of the matrix :" ) ; size = scan.nextInt ( ) ;
a= new int [ size] [ size] ;
b= new int [ size] [ size] ;
c= new int [ size] [ size] ;
System .
out .
println ( "Enter the elements of the First matrix" ) ; for ( int i= 0 ; i< size; i++ )
{
for ( int j= 0 ; j< size; j++ )
{
System .
out .
print ( "Enter the element a[" + i
+ "][" + j
+ "] : " ) ; a[ i] [ j] = scan.nextInt ( ) ;
}
}
System .
out .
println ( "Enter the elements of the Second matrix" ) ; for ( int i= 0 ; i< size; i++ )
{
for ( int j= 0 ; j< size; j++ )
{
System .
out .
print ( "Enter the element b[" + i
+ "][" + j
+ "] : " ) ; b[ i] [ j] = scan.nextInt ( ) ;
}
}
System .
out .
println ( "The Product of the two matrix is : " ) ; for ( int i= 0 ; i< size; i++ )
{
for ( int j= 0 ; j< size; j++ )
{
int sum = 0 ;
for ( int k= 0 ; k< size; k++ )
{
sum += ( a[ i] [ k] * b[ k] [ j] ) ;
}
c[ i] [ j] = sum;
System .
out .
print ( c
[ i
] [ j
] + "\t " ) ; }
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgTWF0cml4bXVsdGlwbGljYXRpb24gCnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIAogICAgewogICAgICAgIFNjYW5uZXIgc2NhbiA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgaW50IFtdW10gYSxiLGM7CiAgICAgICAgaW50IHNpemU7CiAgICAgICAgU3lzdGVtLm91dC5wcmludCgiRW50ZXIgdGhlIFNpemUgb2YgdGhlIG1hdHJpeCA6Iik7CiAgICAgICAgc2l6ZSA9IHNjYW4ubmV4dEludCgpOwogICAgICAgIGE9bmV3IGludFtzaXplXVtzaXplXTsKCQliPW5ldyBpbnRbc2l6ZV1bc2l6ZV07CgkJYz1uZXcgaW50W3NpemVdW3NpemVdOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW50ZXIgdGhlIGVsZW1lbnRzIG9mIHRoZSBGaXJzdCBtYXRyaXgiKTsKICAgICAgICBmb3IoaW50IGk9MDtpPHNpemU7aSsrKQogICAgICAgIHsKICAgICAgICAgICAgZm9yKGludCBqPTA7ajxzaXplO2orKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiRW50ZXIgdGhlIGVsZW1lbnQgYVsiICsgaSArIl1bIisgaiArICJdIDogIik7CiAgICAgICAgICAgICAgICBhW2ldW2pdID0gc2Nhbi5uZXh0SW50KCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbnRlciB0aGUgZWxlbWVudHMgb2YgdGhlIFNlY29uZCBtYXRyaXgiKTsKICAgICAgICBmb3IoaW50IGk9MDtpPHNpemU7aSsrKQogICAgICAgIHsKICAgICAgICAgICAgZm9yKGludCBqPTA7ajxzaXplO2orKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiRW50ZXIgdGhlIGVsZW1lbnQgYlsiICsgaSArIl1bIisgaiArICJdIDogIik7CiAgICAgICAgICAgICAgICBiW2ldW2pdID0gc2Nhbi5uZXh0SW50KCk7CiAgICAgICAgICAgIH0KICAgICAgICB9IAoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBQcm9kdWN0IG9mIHRoZSB0d28gbWF0cml4IGlzIDogIik7CiAgICAgICAgZm9yKGludCBpPTA7aTxzaXplO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGZvcihpbnQgaj0wO2o8c2l6ZTtqKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGludCBzdW0gPSAwOwogICAgICAgICAgICAgICAgZm9yKGludCBrPTA7azxzaXplO2srKykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzdW0gKz0oYVtpXVtrXSAqIGJba11bal0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY1tpXVtqXSA9IHN1bTsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoY1tpXVtqXSArICJcdCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOwogICAgICAgIH0gICAgICAgICAKCiAgICB9Cgp9