Сегодня разберем задание на алгоритмы:
❓Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка F6)?
НАЧАЛО
ПОКА снизу свободно ИЛИ справа свободно
ПОКА справа свободно
вправо
КОНЕЦ ПОКА
ЕСЛИ снизу свободнo
ТО вниз
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
🕵️ Разберемся что происходит в программе:
🔸 Сначала робот проверяет свободна ли клетка снизу. или справа от его положения
Если это так — то выполняем первое условие:
если справа нет стены — идем вправо.
Но как только это условие перестает выполняться, переходим ко второму:
аналогично проверяется наличие стены у клетки ниже
👾 То есть Робот будет двигаться вправо или вниз, пока у него есть такая возможность! При такой стратегии он никогда не разобьется.
🔸Давай закрасим клеточки, в которых он останется «живым»:
➡️ По препятствиям лабиринта мы видим, что есть только два места, в которых Робот может остановиться: клетки 6F и 6C.
➡️ В 6С он может попасть, если находится в одной из клеток области 2А:6С, а количество клеток этой области = 15.
🤖 Значит общее количество клеток, из которых Робот точно будет «жив» = 36 (общее кол-во клеток лабиринта) — 15 (где разобьется) = 21.
Ответ: 21
Авторизуйтесь, чтобы оставить комментарий.