Я думал, что эта проблема имеет тривиальное решение, пару для циклов и некоторые причудливые счетчики, но, по-видимому, это довольно сложно.
Итак, мой вопрос: как бы вы написали (в C) обход функции квадратной матрицы в диагональных полосах.
Пример:
1 2 3
4 5 6
7 8 9
Необходимо пройти в следующем порядке:
[1],[2,4],[3,5,7],[6,8],[9]
Каждая полоса выше заключена в квадратные скобки. Одним из требований является возможность различать полоски. Это означает, что вы знаете, когда начинаете новую полосу. Это потому, что есть еще одна функция, которую я должен вызывать для каждого элемента в полосе, а затем перед началом новой полосы. Таким образом, решение без дублирования кода является идеальным.