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

PLEASE HELP WRITE THE CODE IN JAVA LANGUAGUAGE . THANKS. Please also write the m

ID: 3590481 • Letter: P

Question

PLEASE HELP WRITE THE CODE IN JAVA LANGUAGUAGE. THANKS. Please also write the main method. Thanks

In recreational mathematics, a magic square is an arrangement of numbers (usually integers) in a square grid, where the numbers in each row, and in each column, and the numbers that run diagonally in both directions, all add up to the same number. A magic square has the same number of rows as it has columns, and in conventional math notation, "n" stands for the number of rows (and columns) it has. Thus, a magic square always contains n2 numbers, and its size (the number of rows [and columns] it has) is described as being "of order n". A magic square that contains the integers from 1 to n2 is called a normal magic square.

M = (n(n^2 + 1)) / 2

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[][] array)

public static boolean rowsAreAllEqualToMagicSum(int[][] array)

public static boolean columnsAreAllEqualToMagicSum(int[][] array)

public static boolean diagonalsAreBothEqualToMagicSum(int[][] array)

public static boolean isMagicSquare(int[][] array)

public static boolean isNormalMagicSquare(int[][] array)

public static int getSumOfDownDiagonal(int[][] array)

public static int getSumOfUpDiagonal(int[][] array)

public static int getSumOfRow(int[][] array, int index)

public static int[] getColumn(int[][] array, int index)

public static int getSumOfColumn(int[] array)

You should test your program using a variety of 2-dimensional arrays.

Explanation / Answer

import java.lang.reflect.Array;

import java.util.Scanner;

public class test {

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

System.out.println("Enter the no of rows/colums of the array");

int n=sc.nextInt();

int[][] magicSquare = new int[n][n];

System.out.println("Enter the entries of the array seprated by space");

for(int i=0;i<n;i++)

for(int j=0;j<n;j++)

magicSquare[i][j]=sc.nextInt();

System.out.println("Enter the operation you want to do:");

System.out.println("1. Check if it is a magic square");

System.out.println("2. Check if it is a normal magic square");

System.out.println("3. Get Magic Sum");

int flag=sc.nextInt();

if(flag==1)

{

if(isMagicSquare(magicSquare))

System.out.println("Yes it is a magic square");

else

System.out.println("No it is not a Normal magic square");

}

else if(flag==2)

{

if(isNormalMagicSquare(magicSquare))

System.out.println("Yes it is a magic square");

else

System.out.println("No it is not a magic square");

}

else if(flag==2)

{

System.out.println("Magic Sum ="+magicSum(magicSquare));

}

else

System.out.println("Wrong input");

}

public static int getSumOfRow(int[][] array, int index)

{

int sum=0,n;

n=array[0].length;

for(int i=0;i<n;i++)

sum=sum+array[index][i];

return sum;

}

public static int getSumOfColumn(int[][] array,int index)

{

int sum=0,n;

n=array[0].length;

for(int i=0;i<n;i++)

sum=sum+array[i][index];

return sum;

}

public static int[] getColumn(int[][] array, int index)

{

return array[index];

}

public static int getSumOfUpDiagonal(int[][] array)

{

int sum=0,n,j=0;

n=array[0].length;

for(int i=n-1;i>=0;i--)

sum=sum+array[i][j++];

return sum;

}

public static int getSumOfDownDiagonal(int[][] array)

{

int sum=0,n;

n=array[0].length;

for(int i=0;i<n;i++)

sum=sum+array[i][i];

return sum;

}

public static boolean isNormalMagicSquare(int[][] array)

{

int n;

n=array[0].length;

int[] temp = new int[n*n];

for(int i=0;i<n*n;i++)

temp[i]=0;

for(int i=0;i<n;i++)

for(int j=0;j<n;j++)

{

if(array[i][j]>n*n)

return false;

if(temp[array[i][j]]==0)

temp[array[i][j]]=1;

if(temp[array[i][j]]!=0)

return false;

}

return true;

}

public static boolean isMagicSquare(int[][] array)

{

int n,sum=0,i,j;

n=array[0].length;

for(i=0;i<n;i++)

sum=sum+array[0][i];

for(i=0;i<n;i++)

{

if(sum!=getSumOfRow(array,i))

return false;

if(sum!=getSumOfColumn(array,i))

return false;

if(sum!=getSumOfUpDiagonal(array))

return false;

if(sum!=getSumOfDownDiagonal(array))

return false;

}

return true;

}

public static boolean diagonalsAreBothEqualToMagicSum(int[][] array)

{

int n,sum=0,i;

n=array[0].length;

for(i=0;i<n;i++)

sum=sum+array[0][i];

for(i=0;i<n;i++)

{

if(sum!=getSumOfUpDiagonal(array))

return false;

if(sum!=getSumOfDownDiagonal(array))

return false;

}

return true;

}

public static boolean columnsAreAllEqualToMagicSum(int[][] array)

{

int n,sum=0,i;

n=array[0].length;

for(i=0;i<n;i++)

sum=sum+array[0][i];

for(i=0;i<n;i++)

{

if(sum!=getSumOfColumn(array,i))

return false;

}

return true;

}

public static boolean rowsAreAllEqualToMagicSum(int[][] array)

{

int n,sum=0,i;

n=array[0].length;

for(i=0;i<n;i++)

sum=sum+array[0][i];

for(i=0;i<n;i++)

{

if(sum!=getSumOfRow(array,i))

return false;

}

return true;

}

public static int magicSum(int[][] array)

{

int n,sum=0,i;

n=array[0].length;

for(i=0;i<n;i++)

sum=sum+array[0][i];

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