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

Hi, I need this question answered in Java only please. Also, please use every me

ID: 3589410 • Letter: H

Question

Hi, I need this question answered in Java only please. Also, please use every method listed in the question (public static . . ., all of them) Thank you!

Magic Square 2 7 6-15 9 5 1-15 43815 15 15 15 15 15 The constant that is the sum of every row, column and diagonal is called the magic constant or magic sum, M Every normal magic square has a unique constant determined solely by the value of n, which can be calculated using this formula In this assignment, you are to write a program that takes a 2-dimensional array of ints as input and determines if it is in fact a normal magic square. You will need to implement each of the following methods public static int magicSum(int[Ill array) public static boolean rowsAreAllEqualToMagicSum(int[I array) public static boolean columnsAreAllEqualToMagicSum(int[I array) public static boolean diagonalsAreBothEqualToMagicSum(int[Il] array) public static boolean isMagicSquare(intIl array) public static boolean isNormalMagicSquare(int[I array) public static int getSumOfDownDiagonal (intl array) public static int getSumOfUpDiagonal (int[ array) public static int getSumOfRow(int[)l) array, int index) public static int[] getColumn(int[Il] array, int index) public static int getSumOfColumn(int[ array) You should test your program using a variety of 2-dimensional arrays.

Explanation / Answer

Here is the code for you:

class IsMagicSquare
{
    public static int magicSum(int[][] array)
    {
       int n = array.length;
       return n * (n*n + 1) / 2;
    }
    public static boolean rowsAreAllEqualToMagicSum(int[][] array)
    {
       int magicSum = magicSum(array);
      
       for(int i = 0; i < array.length; i++)   //For each row
       {
          int sum = 0;   //Initially sum = 0.
          for(int j = 0; j < array.length; j++)   //For each column.
              sum += array[i][j];   //Calculate the sum of all columns.
          if(sum != magicSum)   //If the sum of that row is not magicSum
              return false;   //It fails test.
       }
       return true;   //If all tests pass.
    }
    public static boolean columnsAreAllEqualToMagicSum(int[][] array)
    {
       int magicSum = magicSum(array);
      
       for(int i = 0; i < array.length; i++)   //For each column
       {
          int sum = 0;   //Initially sum = 0.
          for(int j = 0; j < array.length; j++)   //For each row.
              sum += array[j][i];   //Calculate the sum of all rows.
          if(sum != magicSum)   //If the sum of that column is not magicSum
              return false;   //It fails test.
       }
       return true;   //If all tests pass.
    }
    public static boolean diagonalsAreBothEqualToMagicSum(int[][] array)
    {
       int magicSum = magicSum(array);
       int sum = 0;
       for(int i = 0; i < array.length; i++)   //For the leading diagonal.
           sum += array[i][i];   //Calculate the sum of the diagonal.
       if(sum != magicSum)   //If the diagonal sum is not magicSum.
           return false;   //It fails test.
       sum = 0;   //Again sum initialized to 0.
       for(int i = 0; i < array.length; i++)   //For the trialing diagonal.
           sum += array[array.length-i-1][i];   //Calculate the sum of the diagonal.
       if(sum != magicSum)   //If the diagonal sum is not magicSum.
           return false;   //It fails test.
       return true;   //If both tests pass.          
    }
    public static boolean isMagicSquare(int[][] array)
    {
       //If rowsSum, columnsSum, and diagonalsSum are all magicSums
       if(rowsAreAllEqualToMagicSum(array) && columnsAreAllEqualToMagicSum(array) && diagonalsAreBothEqualToMagicSum(array))
           return true;   //It is a magic square.
       return false;       //If not it is not a magic square.
    }
    public static boolean isNormalMagicSquare(int[][] array)
    {
       return false;   //What do you mean by this...???
    }
    public static int getSumOfDownDiagonal(int[][] array)
    {
       int sum = 0;
       for(int i = 0; i < array.length; i++)   //For the leading diagonal.
           sum += array[i][i];   //Calculate the sum of the diagonal.
       return sum;  
    }
    public static int getSumOfUpDiagonal(int[][] array)
    {
       int sum = 0;
       for(int i = 0; i < array.length; i++)   //For the trialing diagonal.
           sum += array[array.length-i-1][i];   //Calculate the sum of the diagonal.
       return sum;  
    }
    public static int getSumOfRow(int[][] array, int index)
    {
       int sum = 0;
       for(int i = 0; i < array.length; i++)   //For each column
           sum += array[index][i];   //Calculate the sum of that row.
       return sum;  
    }
    public static int[] getColumn(int[][] array, int index)
    {
       int[] temp = new int[array.length];
       for(int i = 0; i < array.length; i++)
           temp[i] = array[i][index];
       return temp;  
    }
    public static int getSumOfColumn(int[] array)
    {
       int sum = 0;
       for(int i = 0; i < array.length; i++)   //For each value in the array.
           sum += array[i];   //Calculate the sum of that column.
       return sum;  
    }
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote