Программистская задача с математическим уклоном
easy

Андрюха, бензин и Игра престолов

Программистская задача с математическим уклоном.

Из-за эпидемии Андрей перестал ездить на работу на машине и стал смотреть сериалы по подписке. От дома до работы — 10 километров, расход топлива — 11 литров на сотню, а литр бензина стоит 45 рублей.

Сможет ли Андрей на сэкономленные от топлива за 4 недели деньги посмотреть всю «Игру престолов», если каждый сезон стоит 300 рублей?

В задаче есть один пробел — мы не знаем, сколько дней в неделю работает Андрей. Нам придётся перебрать все варианты, чтобы понять, при каком раскладе у него получится купить все сезоны «Игры престолов».

Чтобы не проверять всё вручную, используем Python. Если уже забыли, что это и как работает, — почитайте нашу статью.

Логика будет такая:

  1. Описываем в виде переменных всё, что есть в задаче.
  2. Выясняем, что всего в «Игре престолов» 8 сезонов.
  3. Считаем, сколько будет стоить просмотр всех сезонов.
  4. В цикле от 1 до 7 рабочих дней проверяем по очереди, сколько денег Андрей сэкономит с таким режимом работы.
  5. В этом же цикле постоянно смотрим, набралась нужная сумма или нет.
  6. В любом случае каждый раз выводим сообщение, получится Андрею посмотреть сериал или нет.

Запишем это в виде кода на 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%.

Попробуйте бесплатное в «Яндекс Практикуме»
В «Яндекс Практикуме» есть бесплатные курсы, на которых можно получить полезные навыки для работы в ИТ: от Git и Excel до основ Python и облачных технологий.
Учиться бесплатно
Попробуйте бесплатное в «Яндекс Практикуме» Попробуйте бесплатное в «Яндекс Практикуме» Попробуйте бесплатное в «Яндекс Практикуме» Попробуйте бесплатное в «Яндекс Практикуме»
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy