Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Please explain and put into simple terms, I just started learning about matrices

ID: 3791907 • Letter: P

Question

Please explain and put into simple terms, I just started learning about matrices. Thanks.

Write a method called is Magic Square that accepts a two-dimensional array of integers as a parameter and returns true if it is a magic square. A square matrix is a magic square if it is square in shape (same number of rows as columns, and every row the same length), and all of its row, column, and diagonal sums are equal. For example, [[2, 7, 6], [9, 5, 1], [4, 3, 8]] is a magic square because all eight of the sums are exactly 15.

Explanation / Answer

MagicSquareTest.java


   import java.util.Scanner;
  
   public class MagicSquareTest {
  
      
       public static void main(String[] args) {
       Scanner scan = new Scanner(System.in);
           int rows = 3, cols = 3;
           int a[][] = new int[rows][cols];
           System.out.println("Enter matrix elements;");
           for(int i=0; i<rows; i++){
               for(int j=0; j<cols; j++){
                   a[i][j] = scan.nextInt();
               }
           }
           System.out.println("Entered Matrix is:");
           for(int i=0; i<rows; i++){
               for(int j=0; j<cols; j++){
                   System.out.print(a[i][j] +" ");
               }
               System.out.println();
           }
           boolean result = isMagicSquare(a);
           if(result){
               System.out.println("Given matrix is magic square");
           }
           else{
               System.out.println("Given matrix is not magic square");
           }
       }
       public static boolean isMagicSquare(int a[][]){
           int rowSum[] = new int[a.length];
           int colSum[] = new int[a.length];
           int diagonalSum1 = 0;
           int diagonalSum2 = 0;
                 
           for(int i=0; i<a.length; i++){
               for(int j=0; j<a[i].length; j++){
                   rowSum[i] = rowSum[i]+a[i][j];
               }
           }
           for(int i=0; i<rowSum.length; i++){
               System.out.println("Row "+i+" sum is "+rowSum[i]);
           }
           for(int i=0; i<a.length; i++){
               for(int j=0; j<a[i].length; j++){
                   colSum[i] = colSum[i]+a[j][i];
               }
           }
           for(int i=0; i<colSum.length; i++){
               System.out.println("Column "+i+" sum is "+colSum[i]);
           }
             
           for(int i=0; i<a.length; i++){
               diagonalSum1 = diagonalSum1+a[i][i];
           }
           for(int i=0; i<a.length; i++){
               diagonalSum2 = diagonalSum2+a[i][a.length-1-i];
           }
           System.out.println("Diagonal Sum1: "+diagonalSum1);
           System.out.println("Diagonal Sum2: "+diagonalSum2);
           for(int i=0; i<rowSum.length-1; i++){
               if(rowSum[i] != rowSum[i+1])
                   return false;
           }
           for(int i=0; i<colSum.length-1; i++){
               if(colSum[i] != colSum[i+1])
                   return false;
           }
           if(diagonalSum1 != diagonalSum2)
               return false;
             
           return true;
           }
  
   }

Output:

Enter matrix elements;
2
7
6
9
5
1
4
3
8
Entered Matrix is:
2 7 6
9 5 1
4 3 8
Row 0 sum is 15
Row 1 sum is 15
Row 2 sum is 15
Column 0 sum is 15
Column 1 sum is 15
Column 2 sum is 15
Diagonal Sum1: 15
Diagonal Sum2: 15
Given matrix is magic square