Programmeeroefening voor oneven magische vierkanten in Java

Het is onduidelijk wie voor het eerst met een magisch vierkant kwam. Er is een verhaal over een enorme overstroming in China lang geleden. De mensen waren bang dat ze zouden worden weggespoeld en probeerden de riviergod te sussen door offers te brengen. Niets leek te werken totdat een kind een schildpad zag met een magisch vierkant op zijn rug dat het offer bleef omcirkelen. Het plein vertelde de mensen hoe groot hun offer moest zijn om zichzelf te redden. Sindsdien zijn magische vierkanten het hoogtepunt van de mode voor elke veeleisende schildpad.

Als je er nog nooit een bent tegengekomen, is een magisch vierkant een rangschikking van opeenvolgende getallen in een vierkant, zodat de rijen, kolommen en diagonalen allemaal hetzelfde aantal zijn. Een 3x3 magisch vierkant is bijvoorbeeld:

Deze programmeeroefening houdt zich bezig met het maken van magische vierkanten met een oneven grootte (d.w.z. de grootte van het vierkant kan alleen een oneven getal zijn, 3x3, 5x5, 7x7, 9x9, enzovoort). De truc bij het maken van zo'n vierkant is om nummer 1 in de eerste rij en middelste kolom te plaatsen. Om te bepalen waar het volgende nummer moet worden geplaatst, schuift u diagonaal naar rechts (d.w.z. één rij omhoog, één kolom overdwars). Als een dergelijke beweging betekent dat je van het vierkant valt, wikkel je dan naar de rij of kolom aan de andere kant. Als je ten slotte naar een vierkant gaat dat al is gevuld, ga je terug naar het oorspronkelijke vierkant en ga je één voor één naar beneden. Herhaal het proces totdat alle vierkanten zijn gevuld.

instagram viewer

Nu resulteert de diagonale beweging naar boven in een vierkant dat al is gevuld, dus we gaan terug naar waar we vandaan kwamen en laten een rij vallen:

instagram story viewer