hasan-mahmudz

Odd Magic Square

Mar 14th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.90 KB | None | 0 0
  1. package cse202;
  2.  
  3. public class MagicSquare {
  4.  
  5.     void oddMagicSquare(int dim) {
  6.         if (dim == 0) {
  7.             System.out.println("Zero Dimenssion Magic Square Is Not Possible.");
  8.         } else if (dim % 2 == 1) {
  9.            
  10.             int[][] a = new int[dim+1][dim+1];
  11.  
  12.             a[0][dim] = -3;
  13.            
  14.             for (int r = 0; r <= dim; r++) {
  15.                 for (int c = 0; c <= dim; c++) {
  16.                     if (r == 0 && c != dim) {
  17.                         a[r][c] = -1;
  18.                     } else if (c == dim && r != 0) {
  19.                         a[r][c] = -2;
  20.                     }
  21.                 }
  22.             }
  23.  
  24.             int value = 1;
  25.             int maxRow = dim;
  26.             int r = 1;
  27.             int c = (int)(dim/2);
  28.  
  29.             while (value != (dim * dim) + 1) {
  30.                 if (a[r][c] == -1) {
  31.                     r = maxRow;
  32.                     a[r][c] = value;
  33.                 } else if (a[r][c] == -3) {
  34.                     r = r + 2;
  35.                     c = c - 1;
  36.                     a[r][c] = value;
  37.                 } else if (a[r][c] == -2) {
  38.                     c = 0;
  39.                     a[r][c] = value;
  40.                 } else if (a[r][c] != 0 && a[r][c] != -1 && a[r][c] != -2 && a[r][c] != -3) {
  41.                     r = r + 2;
  42.                     c = c - 1;
  43.                     a[r][c] = value;
  44.                 } else if (a[r][c] == 0) {
  45.                     a[r][c] = value;
  46.                 }
  47.                 r = r - 1;
  48.                 c = c + 1;
  49.                 value++;
  50.             }
  51.  
  52.             for (int i = 1; i <= dim; i++) {
  53.                 for (int j = 0; j < dim; j++) {
  54.                     System.out.print(a[i][j] + " ");
  55.                 }
  56.                 System.out.println("");
  57.             }
  58.         }else{
  59.             System.out.println("Magic Square Dimenssion Should Be Odd Number.");
  60.         }
  61.     }  
  62. }
Advertisement
Add Comment
Please, Sign In to add comment