Петля по спирали



друг нуждался в алгоритме, который позволил бы ему перебирать элементы матрицы NxM (N и M нечетны). Я придумал решение, но я хотел посмотреть, могут ли мои коллеги SO'ERS придумать лучшее решение.



Я публикую свое решение в качестве ответа на этот вопрос.



Пример:



для матрицы 3x3 выход должен быть:



(0, 0)
(1, 0)
(1, 1)
(0, 1)
(-1, 1)
(-1, 0)
(-1, -1)
(0, -1)
(1, -1)



3x3 matrix



кроме того, алгоритм должен поддерживать неквадратичные матрицы, поэтому, например, для матрицы 5x3 выход должен быть:



(0, 0)
(1, 0)
(1, 1)
(0, 1)
(-1, 1)
(-1, 0)
(-1, -1)
(0, -1)
(1, -1)
(2, -1)
(2, 0)
(2, 1)
(-2, 1)
(-2, 0)
(-2, -1)



5x3 matrix

590   0  

Comments

    Ничего не найдено.