Esercizio di programmazione per Odd Magic Squares in Java

Non è chiaro chi abbia inventato per primo un quadrato magico. C'è una storia su un'enorme alluvione in Cina molto tempo fa. Le persone erano preoccupate che sarebbero state spazzate via e hanno cercato di placare il dio del fiume facendo sacrifici. Nulla sembrava funzionare fino a quando un bambino non notò una tartaruga con un quadrato magico sul dorso che continuava a circondare il sacrificio. La piazza ha detto alla gente quanto doveva essere grande il loro sacrificio per salvarsi. Da allora i quadrati magici sono stati l'altezza della moda per qualsiasi tartaruga esigente.

Nel caso in cui non ne abbia mai incontrato uno prima, un quadrato magico è una disposizione di numeri sequenziali in un quadrato in modo che le righe, le colonne e le diagonali si sommino tutte allo stesso numero. Ad esempio, un quadrato magico 3x3 è:

Questo esercizio di programmazione si occupa della creazione di quadrati magici di dimensioni dispari (ovvero, la dimensione del quadrato può essere solo un numero dispari, 3x3, 5x5, 7x7, 9x9 e così via). Il trucco per realizzare un quadrato del genere è posizionare il numero 1 nella prima riga e nella colonna centrale. Per trovare dove posizionare il numero successivo, spostati in diagonale verso l'alto a destra (ad esempio, una riga verso l'alto, una colonna attraverso). Se una tale mossa significa che cadi dal quadrato, avvolgi la riga o la colonna sul lato opposto. Infine, se la mossa ti porta in un quadrato già riempito, torna al quadrato originale e spostati verso il basso di uno. Ripeti il ​​processo fino a riempire tutti i quadrati.

instagram viewer

Ora la mossa diagonale verso l'alto si traduce in un quadrato che è già riempito, quindi torniamo da dove siamo venuti e scendiamo di una riga:

instagram story viewer