Skip to main content

Matrix Multiplication

 1. You are given a number n1, representing the number of rows of 1st matrix.

2. You are given a number m1, representing the number of columns of 1st matrix.
3. You are given n1*m1 numbers, representing elements of 2d array a1.
4. You are given a number n2, representing the number of rows of 2nd matrix.
5. You are given a number m2, representing the number of columns of 2nd matrix.
6. You are given n2*m2 numbers, representing elements of 2d array a2.
7. If the two arrays representing two matrices of dimensions n1 * m1 and n2 * m2 can be multiplied, display the contents of prd array as specified in output Format.
8. If the two arrays can't be multiplied, print "Invalid input".
Input Format
A number n1
A number m1
e11
e12..
e21
e22..
.. n1 * m1 number of elements of array a1
A number n2
A number m2
e11'
e12'..
e21'
e22'..
.. n2 * m2 number of elements of array a2
Output Format
e11' e12' e13' ..
e21' e22' e23' ..
.. elements of prd array
Constraints
1 <= n1 <= 10^2
1 <= m1 <= 10^2
-10^9 <= e11, e12, .. n1 * m1 elements <= 10^9
1 <= n2 <= 10^2
1 <= m2 <= 10^2
-10^9 <= e11', e12', .. n2 * m2 elements <= 10^9
Sample Input
2
3
10
0
0
0
20
0
3
4
1
0
1
0
0
1
1
2
1
1
0
0
Sample Output
10 0 10 0
0 20 20 40

import java.io.*;
import java.util.*;

public class Main{

public static void main(String[] args) throws Exception {
    // write your code here
    Scanner sc = new Scanner(System.in);
    int n1 = sc.nextInt();
    int m1 = sc.nextInt();
    int[][] A1 = new int[n1][m1];
    for(int i=0;i<n1;i++)
        for(int j=0;j<m1;j++)
            A1[i][j] = sc.nextInt();
            
    int n2 = sc.nextInt();
    int m2 = sc.nextInt();
    int[][] A2 = new int[n2][m2];
    for(int i=0;i<n2;i++)
        for(int j=0;j<m2;j++)
            A2[i][j] = sc.nextInt();
            
    if(m1 == n2){
        int[][] A = new int[n1][m2];
        
        for(int i=0;i<n1;i++){
            for(int j=0;j<m2;j++){
                int sum = 0;
                for(int k=0;k<m1;k++){
                    sum += A1[i][k]*A2[k][j];
                }
                A[i][j] = sum;
            }    
        }
        
        for(int i=0;i<n1;i++){
            for(int j=0;j<m2;j++)
                System.out.print(A[i][j]+" ");
            System.out.println();
        }
    } 
    else 
        System.out.println("Invalid input");
    
 }

}

Comments

Popular posts from this blog

Classes and Objects | Accenture TFA

  Question  1 Correct Mark 1.00 out of 1.00 Flag question Question text ___ and _____ are the access specifiers that can be applied to top level Class. Select one or more: public   protected default   private Feedback Your answer is correct. The correct answers are: default, public Question  2 Correct Mark 1.00 out of 1.00 Flag question Question text class Sample{      private double num = 100;    private int square(int a){ return a*a;    } }   public class Test{    public static void main(String args[]){   Sample obj = new Sample();   System.out.println(obj.num);  System.out.println(obj.square(10));    }   } Select one: Compile time error   Run time error Executes but no output 100 Feedback Your answer is correct. The correct answer is: Compile time error Question  3 Correct Mark 1.00 out of 1.00 Flag question Question text Choose the appropriate access specifier for the attribute value so that it can be accessed from anywhere. class Test { Choose... private protected public d

Classes and Objects, Packages | Accenture TFA

  Question  1 Correct Mark 1.00 out of 1.00 Flag question Question text State True or False When using eclipse whichever classes are needed for the present class can be imported automatically. Select one: True   False Feedback The correct answer is 'True'. Question  2 Correct Mark 1.00 out of 1.00 Flag question Question text switch(a) {     default:         System.out.println("Welcome"); } Of which data types can the variable ‘a’ be? 1. long 2. byte 3. int 4. char 5. float 6. short Select one: 3, 4 and 5 1 and 3 3 and 4 2,3, 4 and 6   Feedback Your answer is correct. The variable used in a switch statement can be a byte, short, int, char or String type only. The correct answer is:  2,3, 4 and 6 Question  3 Correct Mark 1.00 out of 1.00 Flag question Question text Predict the output.   public class Test {         public static void main(String args[])         {                     int a = 2, b = 0;              for ( ; b < 20; ++b) {                  if (b % a == 0)

Balanced Brackets

1. You are given a string exp representing an expression. 2. You are required to check if the expression is balanced i.e. closing brackets and opening brackets match up well. e.g. [(a + b) + {(c + d) * (e / f)}] -> true [(a + b) + {(c + d) * (e / f)]} -> false [(a + b) + {(c + d) * (e / f)} -> false ([(a + b) + {(c + d) * (e / f)}] -> false Input Format A string str Output Format true or false Constraints 0 <= str.length <= 100 Sample Input [(a + b) + {(c + d) * (e / f)}] Sample Output true Solution import java.io.*; import java.util.*; public class Main {     public static void main(String[] args) throws Exception {         Scanner sc = new Scanner(System.in);         String str = sc.nextLine();         int n = str.length();         Stack<Character> s = new Stack<>();         for(int i=0;i<n;i++){             char ch = str.charAt(i);             if(ch == '[')                 s.push(']');             else if(ch == '{'