Проверить, сколько квадратов находится в массиве - C#
Формулировка задачи:
Доброго времени суток, такая задача :
Как я понял, нужно проверять соседние эл-ты в массиве и сравнивать их на четность , я попытался сделать и вот, что у меня вышло :
Проверяю я эл-нты расположенные снизу и справа, но проблема в том, что она выводит как минимум на 1 кол-во квадратов меньше , чем существует . И подскажите, как проверять размер ? надо прыгать [i+2] и проверять на нечетность ?
Дан двумерный массив целых чисел. Проверить, сколько в нём квад-
ратов размера 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++;
}
}
}Решение задачи: «Проверить, сколько квадратов находится в массиве»
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++;
}
}
}