Предыдущие части: Подготовка, Первая реализация Второй метод почти не отличается от первого, но на мой взгляд более изящен. Если ранее мы использовали 4 отдельных цикла для обхода периметра матрицы, а затем еще 4 цикла для внутренней части матрицы и т.д., то здесь у нас будет непрерывное движение по спирали в одном-единственном цикле от начала до конца. Начнётся этот цикл точно так же: от первой клетки мы заполним строку числами по горизонтали, а дальше? А дальше мы продолжим этот же самый цикл, но поменяем направление движения. Двигаться можно либо по горизонтали, либо по вертикали. Значит, следующий шаг определяется тем, какие направление заданы по x и по y. Назовём их dx и dy. Если dx = 1, то двигаемся вправо. Если dx = -1, то влево. Если dy = 1, то вниз, а если dy = -1, то вверх. Если dx и dy одновременно не нулевые, мы могли бы двигаться по диагонали, но нам это не нужно, поэтому в любом направлении будет активно только dx или только dy. Создадим переменные-координаты x,y, а также
Задача спирального заполнения матрицы на Python #3: Вторая и моя реализации
13 сентября 202013 сен 2020
5373
3 мин