Magische Quadrate

Dosenoeffner

Mitglied
isMagicSquare () - Diese Methode gibt einen Booleschen Wert zurück. Dieser ist true,
wenn das Quadrat ein magisches Quadrat ist, und false, wenn nicht.


Hey ich Weiss nicht was ich genau mit was vergelichen soll um zu wissen ob der Quadrate ein magisches quadrat ist.

und ich habe mehrere fehlermeldungen im code kann mir jemand weiterhelfen.

im Anhang ist die Aufgabe ( c )



bei zeile 16 habe ich eine Fehlermeldung?
Zeile 25 und 27 auch?



[CODE lang="java" title="MagicSquare"]public class MagicSquare {

int magicNumber;
int n;
int[][] square;
int k;
String komma = ", ";

public MagicSquare(int[][] square) {
this.square = square;

}

public static int showMagicNumbers(int k) {
for (int n = 1; n <= k; n++) {
int magicNumber = (n * n * n + n) / 2;

return (magicNumber);
}

}

public boolean isMagicSquare() {
if (square[][] = MagicNumber)
System.out.println("true");
}else

{System.out.println("false");
}



public boolean isSemimmagicSquare() {

}

public complement() {



}

public toString() {


}
}
[/CODE]
 

Anhänge

  • assignment2 (1) 2.pdf
    588 KB · Aufrufe: 8

mihe7

Top Contributor
Das steht doch in der Aufgabe: "Ein magisches Quadrat der Ordnung n ist eine quadratische Anordnung der Zahlen 1 bis n^2, so dass alle Zeilen- und Spaltensummen sowie die Summe der Zahlen auf der Diagonalen gleich sind."

Die Frage ist also, ob das zweidimensionale Array ein magisches Quadrat darstellt.
 

Dosenoeffner

Mitglied
habe ich es also richtig?
Das steht doch in der Aufgabe: "Ein magisches Quadrat der Ordnung n ist eine quadratische Anordnung der Zahlen 1 bis n^2, so dass alle Zeilen- und Spaltensummen sowie die Summe der Zahlen auf der Diagonalen gleich sind."

Die Frage ist also, ob das zweidimensionale Array ein magisches Quadrat darstellt.
vertsehe als muss ich ein array fü die zeilen machen und für die spalten unf für die diagonalen?
 

mihe7

Top Contributor
Über das Array laufen und die Summe bilden?!?

Java:
int getRowSum(int row) {
    int sum = 0;
    for (int number : square[row]) {
        sum += number;
    }
    return sum;
}

Java:
boolean equalRowSums() {
    int first = getRowSum(0);
    for (int row = 1; row < square.length; i++) {
        if (first != getRowSum(row)) {
            return false;
        }
    }
    return true;
}

Mal als Beispiel für die Zeilen. Die Spalten und Diagonalen darfst Du selbst machen :)
 

Dosenoeffner

Mitglied
Über das Array laufen und die Summe bilden?!?

Java:
int getRowSum(int row) {
    int sum = 0;
    for (int number : square[row]) {
        sum += number;
    }
    return sum;
}

Java:
boolean equalRowSums() {
    int first = getRowSum(0);
    for (int row = 1; row < square.length; i++) {
        if (first != getRowSum(row)) {
            return false;
        }
    }
    return true;
}

Mal als Beispiel für die Zeilen. Die Spalten und Diagonalen darfst Du selbst machen :)
Danke dir
 

Ähnliche Java Themen

Neue Themen


Oben