Для решения задачи по окрашиванию клеток выше и ниже закрашенных клеток в ряду из 10 клеток, мы можем использовать простой алгоритм. Будем считать, что клетки представлены в виде массива, где закрашенные клетки обозначены, например, единицей (1), а незакрашенные — нулем (0).
Вот как мог бы выглядеть алгоритм на языке программирования Python:
def color_surrounding_cells(cells):
# Создаем новый массив для закрашенных клеток
colored_cells = cells.copy()
# Проходим по всем клеткам
for i in range(len(cells)):
# Проверяем, закрашена ли текущая клетка
if cells[i] == 1:
# Закрашиваем клетку выше, если она существует
if i - 1 >= 0:
colored_cells[i - 1] = 1
# Закрашиваем клетку ниже, если она существует
if i + 1 < len(cells):
colored_cells[i + 1] = 1
return colored_cells
# Пример использования
cells = [0, 0, 1, 0, 0, 1, 0, 0, 0, 1] # Исходный ряд из клеток
colored_cells = color_surrounding_cells(cells)
print(colored_cells) # Вывод результата
Пояснение алгоритма:
- Создаем новый массив
colored_cells, который будет содержать цвет клеток после обработки.
- Проходим в цикле по всем клеткам
cells.
- Если текущая клетка закрашенная (равна 1), то:
- Проверяем, есть ли клетка выше (индекс
i - 1), и если да, закрашиваем ее.
- Проверяем, есть ли клетка ниже (индекс
i + 1), и если да, закрашиваем ее.
- Возвращаем массив
colored_cells, содержащий обновленное состояние клеток.
Пример вывода:
Для входного массива [0, 0, 1, 0, 0, 1, 0, 0, 0, 1] результат будет [0, 1, 1, 1, 1, 1, 1, 0, 1, 0]. Это означает, что клетки, примыкающие к закрашенным, стали также закрашенными.