Exercice de programmation pour Odd Magic Squares en Java

On ne sait pas qui a créé le premier un carré magique. Il y a longtemps l'histoire d'une énorme inondation en Chine. Les gens craignaient d'être emportés et tentaient d'apaiser le dieu de la rivière en faisant des sacrifices. Rien ne semblait fonctionner jusqu'à ce qu'un enfant remarque une tortue arborant un carré magique sur son dos qui contournait le sacrifice. La place a dit aux gens combien leur sacrifice devait être important pour se sauver. Depuis lors, les carrés magiques ont été à la mode pour toute tortue exigeante.

Au cas où vous n'en auriez jamais rencontré auparavant, un carré magique est un arrangement de nombres séquentiels dans un carré de sorte que les lignes, les colonnes et les diagonales s'ajoutent au même nombre. Par exemple, un carré magique 3x3 est:

Cet exercice de programmation concerne la création de carrés magiques de taille impaire (c'est-à-dire que la taille du carré ne peut être qu'un nombre impair, 3x3, 5x5, 7x7, 9x9, etc.). L'astuce pour faire un tel carré est de placer le numéro 1 dans la première ligne et la colonne du milieu. Pour trouver où placer le numéro suivant, déplacez-vous en diagonale vers le haut vers la droite (c.-à-d., Une ligne vers le haut, une colonne à travers). Si un tel mouvement signifie que vous tombez du carré, passez à la ligne ou à la colonne du côté opposé. Enfin, si le mouvement vous amène à une case déjà remplie, revenez à la case d'origine et descendez d'une case. Répétez le processus jusqu'à ce que tous les carrés soient remplis.

instagram viewer

Maintenant, le déplacement diagonal vers le haut se traduit par un carré déjà rempli, nous retournons donc d'où nous venons et descendons une rangée: