Из-за эпидемии Андрей перестал ездить на работу на машине и стал смотреть сериалы по подписке. От дома до работы — 10 километров, расход топлива — 11 литров на сотню, а литр бензина стоит 45 рублей.
Сможет ли Андрей на сэкономленные от топлива за 4 недели деньги посмотреть всю «Игру престолов», если каждый сезон стоит 300 рублей?
В задаче есть один пробел — мы не знаем, сколько дней в неделю работает Андрей. Нам придётся перебрать все варианты, чтобы понять, при каком раскладе у него получится купить все сезоны «Игры престолов».
Чтобы не проверять всё вручную, используем Python. Если уже забыли, что это и как работает, — почитайте нашу статью.
Логика будет такая:
- Описываем в виде переменных всё, что есть в задаче.
- Выясняем, что всего в «Игре престолов» 8 сезонов.
- Считаем, сколько будет стоить просмотр всех сезонов.
- В цикле от 1 до 7 рабочих дней проверяем по очереди, сколько денег Андрей сэкономит с таким режимом работы.
- В этом же цикле постоянно смотрим, набралась нужная сумма или нет.
- В любом случае каждый раз выводим сообщение, получится Андрею посмотреть сериал или нет.
Запишем это в виде кода на Python:
# расстояние до работы
dist = 10
# расход бензина на сотню
consumption = 11
# цена за литр
gas_cost = 45
# сколько недель надо сидеть Андрею дома
weeks = 4
# количество сезонов в Игре престолов
seasons = 8
# цена подписки на один сезон
season_cost = 300
# количество рабочих дней в неделю (8 не входит в эти границы)
days = range(1,8)
# считаем, сколько стоят все сезоны сериала
full_cost = seasons * season_cost
# по очереди меняем количество рабочих дней и смотрим, что получится
for work_day in days:
# считаем, сколько денег Андрей сэкономит в зависимости от количества рабочих дней
# умножаем на 2, потому что дорога на работу и обратно
# делим на сто, потому что у нас расход в литрах на сто километров
# потом умножаем на расход, чтобы получить потраченные литры
# затем умножаем на стоимость за литр
# ещё умножаем на количество рабочих дней в неделю, в которые Андрей ездил бы на работу
# а в конце умножаем на количество таких недель
economy = ((dist * 2 ) / 100) * consumption * gas_cost * work_day * weeks
# сравниваем сэкономленные деньги с ценой всех сезонов
if economy >= full_cost:
# если сэкономленных денег хватит, Андрюха молодец
print('Если Андрей работал ',work_day,' д. в неделю, то сэкономленных денег хватит на весь сериал')
else:
# если сэкономленных денег не хватит на просмотр всех сезонов, то так и пишем
print('Если Андрей работал ',work_day,' д. в неделю, то на весь сериал денег не хватит')
Сила программирования именно в этом: поручить компьютеру нудную работу и дождаться, пока он выдаст все результаты. Нам остаётся только выбрать из них тот, что нам нужен. Класс.
Домашнее задание: попробуйте решить усложнённую задачу, когда цена на бензин растёт каждый день на 2%.