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


CategoryHomework

LecturesCMC/PythonIntro2017/Homework_SpiralDigits (last edited 2017-10-23 15:23:41 by FrBrGeorge)