Упражнение по программированию нечетных магических квадратов на Java

Непонятно, кто первым придумал магический квадрат. Существует история об огромном наводнении в Китае давным-давно. Люди волновались, что их смыли, и пытались умиротворить бога реки, принося жертвы. Ничто, казалось, не работало, пока ребенок не заметил черепаху с магическим квадратом на спине, которая продолжала кружить вокруг жертвы. Площадь рассказывала людям, насколько велика должна быть их жертва, чтобы спасти себя. С тех пор магические квадраты стали вершиной моды для любой проницательной черепахи.

В случае, если вы никогда не сталкивались с таким, магический квадрат - это последовательность последовательных чисел в квадрате, так что все строки, столбцы и диагонали складываются в одно и то же число. Например, магический квадрат 3х3 это:

Это упражнение по программированию связано с созданием магических квадратов нечетного размера (то есть размер квадрата может быть только нечетным числом 3x3, 5x5, 7x7, 9x9 и т. Д.). Хитрость в создании такого квадрата заключается в том, чтобы поместить число 1 в первый ряд и средний столбец. Чтобы найти место для размещения следующего числа, двигайтесь по диагонали вверх вправо (т.е. на одну строку вверх, на одну колонку поперек). Если такой ход означает, что вы упали с квадрата, обернитесь к ряду или столбцу на противоположной стороне. Наконец, если ход приводит вас к квадрату, который уже заполнен, вернитесь к исходному квадрату и двигайтесь вниз на единицу. Повторяйте процесс, пока все квадраты не будут заполнены.

instagram viewer

Теперь перемещение по диагонали вверх приводит к квадрату, который уже заполнен, поэтому мы возвращаемся туда, откуда пришли, и опускаем строку вниз:

instagram story viewer