Programmierübung für Odd Magic Squares in Java

Es ist unklar, wer zuerst ein magisches Quadrat erfunden hat. Es gibt eine Geschichte über eine große Flut in China vor langer Zeit. Die Menschen befürchteten, sie würden weggespült und versuchten, den Flussgott durch Opfer zu besänftigen. Nichts schien zu funktionieren, bis ein Kind eine Schildkröte mit einem magischen Quadrat auf dem Rücken bemerkte, das das Opfer immer wieder umkreiste. Der Platz sagte den Menschen, wie groß ihr Opfer sein musste, um sich selbst zu retten. Seitdem sind magische Quadrate der Höhepunkt der Mode für jede anspruchsvolle Schildkröte.

Falls Sie noch nie zuvor auf eines gestoßen sind, ist ein magisches Quadrat eine Anordnung von fortlaufenden Zahlen in einem Quadrat, sodass sich die Zeilen, Spalten und Diagonalen zu derselben Zahl addieren. Zum Beispiel ist ein 3x3 magisches Quadrat:

Diese Programmierübung befasst sich mit dem Erstellen von magischen Quadraten ungerader Größe (d. H. Die Größe des Quadrats kann nur eine ungerade Zahl sein, 3 × 3, 5 × 5, 7 × 7, 9 × 9 usw.). Der Trick bei der Erstellung eines solchen Quadrats besteht darin, die Nummer 1 in die erste Zeile und mittlere Spalte zu setzen. Um herauszufinden, wo die nächste Zahl platziert werden soll, bewegen Sie sich diagonal nach oben nach rechts (d. H. Eine Zeile nach oben, eine Spalte darüber). Wenn eine solche Bewegung bedeutet, dass Sie vom Quadrat fallen, wickeln Sie sich in die Zeile oder Spalte auf der gegenüberliegenden Seite. Wenn der Zug Sie zu einem bereits gefüllten Quadrat führt, kehren Sie zum ursprünglichen Quadrat zurück und bewegen Sie sich um eins nach unten. Wiederholen Sie den Vorgang, bis alle Quadrate gefüllt sind.

instagram viewer

Jetzt führt die diagonale Aufwärtsbewegung zu einem Quadrat, das bereits gefüllt ist. Wir kehren also dorthin zurück, wo wir herkommen, und lassen eine Reihe nach unten fallen: