Suggest a feature
×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Added: Dec 11, 2020 6:56 PM
Views: 3
Tags: no tags
  1.   public static void main(String[] args) {
  2.         int[][] q1 = {
  3.                 {8, 1, 6},
  4.                 {3, 5, 7},
  5.                 {4, 9, 2}};
  6.         int[][] q2 = {
  7.                 {16, 2, 3, 13},
  8.                 {5, 11, 10, 8},
  9.                 {9, 7, 6, 12},
  10.                 {4, 14, 15, 1}};
  11.         int[][] q3 = {
  12.                 {16, 2, 3, 13},
  13.                 {5, 11, 10, 8},
  14.                 {9, 7, 6, 12},
  15.                 {14, 4, 15, 1}};
  16.         int[][] q4 = {
  17.                 {9, 2, 7},
  18.                 {4, 6, 8},
  19.                 {5, 10, 3}};
  20.  
  21.         System.out.println("Quadrat 1 ist magisch: " + combinedAll(q1));
  22.         System.out.println("Quadrat 2 ist magisch: " + combinedAll(q2));
  23.         System.out.println("Quadrat 3 ist magisch: " + combinedAll(q3));
  24.         System.out.println("Quadrat 4 ist magisch: " + combinedAll(q4));
  25.  
  26.     }
  27.  
  28.  
  29.     public static boolean checkArray(int[][] ar) {
  30.  
  31.         //Summe der Diagonale berechnen
  32.         //sumdiag außen definiert, da wir es global in der Methode benutzen können müssen!
  33.         int sumdiag = 0;
  34.         for (int i = 0; i < ar.length; i++)
  35.             sumdiag = sumdiag + ar[i][i];
  36.  
  37.         // Summe der Zeilen
  38.  
  39.         for (int i = 0; i < ar.length; i++) {
  40.             //Man muss immer in der Schleife die Variable deklarieren+initialisieren, da es ansonsten immer false ist!
  41.             int rowSum = 0;
  42.             for (int j = 0; j < ar.length; j++)
  43.                 rowSum += ar[i][j];
  44.  
  45.             // Prüfen ob die Summe der Zeilen nicht gleich der Summe der Diagonale ist
  46.             if (rowSum != sumdiag)
  47.                 //Dann soll false ausgegeben werden
  48.                 return false;
  49.         }
  50.  
  51.         int sumFirstCol = 0;
  52.         for (int i = 0; i < ar[0].length; i++) {
  53.             sumFirstCol += ar[i][0];
  54.         }
  55.  
  56.         // Die Summe der Spalten
  57.         for (int col = 0; col < ar[0].length; col++) {
  58.             //Man muss immer in der Schleife die Variable deklarieren+initialisieren, da es ansonsten immer false ist!
  59.             int colSum = 0;
  60.             for (int row = 0; row < ar[0].length; row++)
  61.                 colSum += ar[row][col];
  62.  
  63.             // Prüfen, ob die Summe der Diagonale nicht gleich der Summe der Spalte ist
  64.             if (colSum != sumFirstCol) {
  65.                 //Dann soll false ausgegeben werden
  66.                 return false;
  67.  
  68.             }
  69.  
  70.  
  71.         }
  72.  
  73.  
  74.         //Standardmäßig: True ausgeben.
  75.         return true;
  76.     }
  77.     public static boolean tooBig (int[][]ar){
  78.         boolean toobigvalue = true;
  79.         for (int row = 0; row < ar.length; row++) {
  80.             for (int col = 0; col < ar.length; col++) {
  81.                 if(ar[row][col] <= (ar.length*ar.length)){
  82.  
  83.                 } else{
  84.                     toobigvalue=false;
  85.                     break;
  86.                 }
  87.             }
  88.         }
  89.         return toobigvalue;
  90.     }
  91.     public static boolean combinedAll (int[][]ar){
  92.         boolean answer = false;
  93.         if(tooBig(ar) && checkArray(ar)){
  94.             answer = true;
  95.  
  96.         }
  97.         return answer;
  98.     }
  99. }