Programozási gyakorlat a páratlan mágikus négyzetekre Java-ban

Nem világos, ki először jött létre egy varázslatos négyzettel. Van egy történet egy hatalmas áradásról Kínában, régen. Az emberek attól tartottak, hogy elmossák őket, és áldozatokkal próbálták megnyugtatni a folyami istenet. Úgy tűnt, semmi sem működött addig, amíg egy gyermek észre nem vett egy teknősöt, amely hátulján varázslatos négyzetet sportol, és folyamatosan körözte az áldozatot. A tér elmondta az embereknek, milyen nagy áldozat szükséges ahhoz, hogy megmentsék magukat. Azóta a varázslatos négyzetek minden divatos teknős számára a divat magassága.

Ha még soha nem találkozott ilyennel, a varázslatos négyzet a sorszámok négyzet alakú elrendezése, így a sorok, oszlopok és átlók egyaránt megegyeznek. Például egy 3x3 mágikus négyzet:

Ez a programozási feladat páratlan méretű mágikus négyzetek létrehozásával foglalkozik (azaz a négyzet mérete csak páratlan szám lehet, 3x3, 5x5, 7x7, 9x9 és így tovább). Az ilyen négyzet elkészítésének trükk az, hogy az 1. számot az első sorba és a középső oszlopba helyezi. A következő szám elhelyezéséhez mozogjon átlósan felfelé jobbra (azaz egy sor felfelé, egy oszlop át). Ha egy ilyen lépés azt jelenti, hogy leesik a négyzetről, akkor tekerje körül a sorát vagy oszlopát a másik oldalon. Végül, ha a lépés egy már kitöltött négyzetre vezet, akkor térjen vissza az eredeti négyzetre, és lépjen lefelé egy-egy. Ismételje meg a folyamatot, amíg az összes négyzet megtelik.

instagram viewer

Most az átlós felfelé történő elmozdulás eredményeként egy négyzet már meg van töltve, tehát visszamegyünk oda, ahonnan jöttünk, és egy sort lefelé dobunk: