@gridmaniac

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

Решаю задачу нахождения последовательностей одинаковых шариков на диагоналях.
Есть код для вывода/прохода по диагоналям матрицы слева направо, сверху вниз.
int size = 9; //Размер матрицы 9x9
string diagonal  = "";
for (int k = 0; k < size * 2; k++)
{
   for (int j = 0; j <= k; j++)
   {
      int i = k - j;
      if (i < size && j < size)
      {
         diagonal += mat[j, i] + " ";
      }
   }
   print(diagonal);
   diagonal = "";
}

Теперь пытаюсь сделать вывод диагоналей сверху вниз, справа налево, чтобы просмотреть все варианты диагоналей матрицы на наличие последовательностей шариков.
3ac8fdeae98145078d6d872e74edf359.png
Можно ли модифицировать данный код для зеркального прохода?
  • Вопрос задан
  • 1329 просмотров
Решения вопроса 1
@gridmaniac Автор вопроса
Мое решение:

for (int k = size; k >= -size; k--)
{
  for (int j = 0; j < size - k; j++)
  {
    int i = k + j;
    if (i < size && j < size && i >= 0 && j >= 0)
    {
      diagonal += arr2[j, i] + " ";
    }
  }

  Console.WriteLine(diagonal);
  diagonal = "";
}

Рабочий код
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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