Задача по информатике (Перемещение Робота в лабиринте 4x4)
Условие: Робот оказался в левом верхнем углу лабиринта. Помогите ему за минимальное количество шагов оказаться в правом нижнем углу в помеченной клетке (клетке с буквой "Б").
Требование: Напишите программу в одну строчку без пробелов маленькими буквами, используя следующие сокращения:
u– вверхd– внизl– влевоr– вправоp– закрасить клетку (хотя в этой задаче закрашивать не нужно, только переместиться)
Рисунок лабиринта (4x4):
+---+---+---+---+ | R | | | | +---+---+---+---+ | | | | | +---+---+---+---+ | | | | | +---+---+---+---+ | | | | Б | +---+---+---+---+
На рисунке видно, что лабиринт представляет собой сетку 4x4 клеток. Робот (R) находится в левом верхнем углу (1-й столбец, 1-я строка). Целевая клетка "Б" находится в правом нижнем углу (4-й столбец, 4-я строка).
Решение:
Чтобы Робот переместился из левого верхнего угла в правый нижний угол, ему нужно сделать несколько шагов вправо и несколько шагов вниз.
Определим количество шагов:
- По горизонтали: Робот находится в 1-м столбце, а должен оказаться в 4-м столбце. Значит, ему нужно сделать \(4 - 1 = 3\) шага вправо.
- По вертикали: Робот находится в 1-й строке, а должен оказаться в 4-й строке. Значит, ему нужно сделать \(4 - 1 = 3\) шага вниз.
Для минимального количества шагов порядок движения не имеет значения. Главное – выполнить 3 шага вправо и 3 шага вниз.
Используем сокращения:
rдля шага вправоdдля шага вниз
Составим программу. Например, сначала все шаги вправо, потом все шаги вниз:
3 шага вправо: rrr
3 шага вниз: ddd
Объединяем их в одну строку без пробелов:
rrrddd
Другие варианты (также верные):
dddrrr(сначала вниз, потом вправо)rdrdrd(чередуя)
Все эти варианты приведут Робота в нужную клетку за минимальное количество шагов (6 шагов).
Ответ:
rrrddd
