Поле в игре «Речной бой» представляет собой полоску длины n клеток и шириной в одну клетку.
Где-то на поле расположен корабль из k клеток (k ≤ n). Какое наименьшее число выстрелов необходимо, чтобы гарантированно потопить корабль? После каждого выстрела сообщается его результат: «мимо», «ранен» или «убит».
python
n = int(input("Введите длину поля: ")) # считываем длину поля
k = int(input("Введите количество клеток корабля: ")) # считываем количество клеток корабля
shots = 0 # счетчик выстрелов
empty_cells = n # количество пустых клеток на поле
while empty_cells > 0:
result = input("Введите результат выстрела: ") # считываем результат выстрела
if result == "убит":
empty_cells -= k
shots += 1
elif result == "ранен":
empty_cells -= 1
shots += 1
elif result == "мимо":
shots += 1
print("Наименьшее число выстрелов:", shots)
Пример работы программы:
Введите длину поля: 10
Введите количество клеток корабля: 3
Введите результат выстрела: мимо
Введите результат выстрела: ранен
Введите результат выстрела: ранен
Введите результат выстрела: убит
Наименьшее число выстрелов: 4
В данном примере поле имеет длину 10, и корабль занимает 3 клетки. После каждого выстрела вводится результат: "мимо", "ранен" или "убит". В данном случае, чтобы гарантированно потопить корабль, потребовалось 4 выстрела.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет