Write a Java application that takes a set of n2 numbers from
Solution
// DiagonalSum.java
import java.util.Scanner;
class DiagonalSum
{
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
System.out.println(\"Enter set of numbers: \");
String input = sc.nextLine();
String[] numbers = input.split(\" \");
int size = numbers.length;
// check if number of input numbers is a perfect square
double sqrt = Math.sqrt(size);
int sqrtSize = (int) sqrt;
if(Math.pow(sqrt,2) != Math.pow(sqrtSize,2))
{
System.out.println(\"2-Dim array cannot be formed from input numbers\");
System.exit(1);
}
int[] numberarray = new int[size];
for (int i = 0; i < size ; i++ )
{
numberarray[i] = Integer.parseInt(numbers[i]);
}
int k = 0;
int[][] matrix = new int[sqrtSize][sqrtSize];
for (int i = 0; i < sqrtSize ; i++ )
{
for (int j = 0; j < sqrtSize ; j++ )
{
matrix[i][j] = numberarray[k];
k++;
}
}
int diagonal1 = 0;
int diagonal2 = 0;
for (int i = 0; i < sqrtSize ; i++ )
{
diagonal1 = diagonal1 + matrix[i][i];
diagonal2 = diagonal2 + matrix[i][sqrtSize-i-1];
}
System.out.println(\"Diagonal1 Sum: \" + diagonal1);
System.out.println(\"Diagonal2 Sum: \" + diagonal2);
}
}
/*
output;
Enter set of numbers:
1 2 3 4 5 6 7 8
2-Dim array cannot be formed from input numbers
Enter set of numbers:
2 45 16 22 17 21 67 29 45 67 97 35 68 34 90 72
Diagonal1 Sum: 192
Diagonal2 Sum: 224
*/

