Ввести целые M и N, вывести последовательность 0 1 2 3 4 5 6 7 8 9 0 1 2 3 … в виде спирально (по часовой стрелке, из верхнего левого угла) заполненной таблицы N×M (N строк, M столбцов). Не забываем про то, что M и N могут быть чётными, нечётными и неизвестно, какое больше.

В конце этой страницы — спойлер: описание алгоритма.

6,5

0 1 2 3 4 5
7 8 9 0 1 6
6 7 8 9 2 7
5 6 5 4 3 8
4 3 2 1 0 9
  1. Заводим матрицу N×M с невозможными значениями (например, -1)
  2. Заводим список направлений (приращений координат): →, ↓, ←, ↑
  3. Текущие координаты — 0,0; текущее направление — →
  4. Вписать очередную цифру по текущим координатам
  5. Если по направлению лежит граница массива, или значение массива ≠ -1
    • Циклически сменить направление на следующее
  6. Повторить с п.4 N*M раз


CategoryHomework

LecturesCMC/PythonIntro2018/Homework_SpiralDigits (последним исправлял пользователь FrBrGeorge 2018-10-25 20:06:57)