Задать вопрос
@kjjokay

Как делать спиральные массивы?

всем привет! я только недавно изучаю массивы и вообще пайтон. недавно видел такую штуку как спиральные двумерные массивы. примерно как их создать я понимаю, но не до конца. вот например как создать спиральный массив начиная снизу, или изнутри и тп. помогите понять
  • Вопрос задан
  • 130 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Берете бумажку, рисуете на ней нужный вам спиральный массив. Внимательно на нее смотрите.

Выписываете прямые куски - какой они длины, в какую сторону вращаются. Ищите паттерн (например в спиральном массиве из центра длины кусков: 1, 1, 2, 2, 3, 3, ...).

Реализуете его. Внешний цикл работает пока все числа не поставились. Внутри пересчитываете по паттерну длину и направление прямого куска и запускаете цикл от текущей позиции вдоль направления - ставьте числа нужное количество раз.

Для реализации поворота храните текущее направление в виде двух переменных dx, dy. Одна из них +-1, а другая 0. Для поворота против часовой стрелки делаете (dx, dy) = (-dy, dx)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы