Проверить, сколько квадратов находится в массиве - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, такая задача :
Дан двумерный массив целых чисел. Проверить, сколько в нём квад- ратов размера 2 × 2, состоящих только из чётных элементов.
Как я понял, нужно проверять соседние эл-ты в массиве и сравнивать их на четность , я попытался сделать и вот, что у меня вышло :
int[,] a = new[,] { {4, 2, 4},
                                {4, 4, 2}, 
                                {6, 8, 16}, 
                                {10, 1, 10} };
            int t =0;
            for (int i = 0; i < a.GetLength(0)-1; i++)
            {
                for (int j = 0; j < a.GetLength(1)-1; j++)
                {
                    if (a[i + 1, j + 1] <= a.Length)
                    {
                        if ((a[i, j] % 2 == 0) && (a[i + 1, j] % 2 == 0) && (a[i + 1, j + 1] % 2 == 0) && (a[i, j + 1] % 2 == 0))
                        {
                            t++;
 
                        }
                    }
                }
Проверяю я эл-нты расположенные снизу и справа, но проблема в том, что она выводит как минимум на 1 кол-во квадратов меньше , чем существует . И подскажите, как проверять размер ? надо прыгать [i+2] и проверять на нечетность ?

Решение задачи: «Проверить, сколько квадратов находится в массиве»

textual
Листинг программы
int[,] a = new[,] { {4, 2, 4,12},
                                     {4, 4, 2,14}, 
                                     {6, 8, 16,18}, 
                                     {10, 2, 10,20} };
            int t =0;
            for (int i = 0; i < a.GetLength(0)-2; i++)
            {
                for (int j = 0; j < a.GetLength(1)-2; j++)
                {
                    
                        if ((a[i, j] % 2 == 0) && (a[i + 1, j] % 2 == 0) && (a[i + 1, j + 1] % 2 == 0) && (a[i, j + 1] % 2 == 0))
                        {
                            t++;
 
                        }
                    
                }
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы