tdudzik

Untitled

Sep 17th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.19 KB | None | 0 0
  1. public static void main(String[] args) {
  2.         int grid[][] = {{4, 9, 2}, {3, 5, 7}, {8, 1, 6}};
  3.         System.out.println(isMagicSquare(grid));
  4.     }
  5.  
  6.     private static boolean isMagicSquare(int[][] grid) {
  7.         int n = grid.length;
  8.  
  9.         Set<Integer> sums = new HashSet<>();
  10.         int sumOfCurrentRow;
  11.         int sumOfCurrentColumn;
  12.  
  13.         int sumOfLeftDiagonal = 0;
  14.         int sumOfRightDiagonal = 0;
  15.         for (int i = 0; i < n; i++) {
  16.             sumOfLeftDiagonal += grid[i][i];
  17.             sumOfRightDiagonal += grid[n - 1 - i][i];
  18.  
  19.             sumOfCurrentRow = 0;
  20.             sumOfCurrentColumn = 0;
  21.             for (int j = 0; j < n; j++) {
  22.                 sumOfCurrentRow += grid[i][j];
  23.                 sumOfCurrentColumn += grid[j][i];
  24.             }
  25.  
  26.             if (sums.isEmpty()) {
  27.                 sums.add(sumOfCurrentRow);
  28.             } else {
  29.                 if (sums.add(sumOfCurrentRow)) {
  30.                     return false;
  31.                 }
  32.             }
  33.  
  34.             if (sums.add(sumOfCurrentColumn)) {
  35.                 return false;
  36.             }
  37.         }
  38.  
  39.         return !sums.add(sumOfLeftDiagonal) && !sums.add(sumOfRightDiagonal);
  40.     }
Advertisement
Add Comment
Please, Sign In to add comment