
Задание 5. Вы посетили город X Казахстана. Стоимость билета продается по разным ценам: стоимость
одной поездки 40 тенге; стоимость 20 поездок составляет 600 тенге; стоимость 60 поездок составляет 1500 тенге. Вы должны путешествовать n раз по вашему плану. Сколько билетов нужно купить по разным ценам, чтобы потра- тить немного денег? Общее количество билетов должно быть не менее n. Входные данные: вводится число п. Выходные данные: программа должна вывести 3 необходимых числа проездных билетов за 1, 20, 60 раз.

Ответы на вопрос

Ответ:
бош
Объяснение:
крч, можно юзать цикл while, но без него справимся. кол-во билетов за 60 поездок можно вычислить, используя операцию деления с округлением вверх. затем, если остаток поездок n больше 20, можно купить билеты за 20 поездок до тех пор, пока остаток n не станет меньше 20. затем можно купить билеты за 1 поездку до тех пор, пока остаток n не станет равен нулю, держи крч кодик
import math
n = int(input("пукни свое кол-во поездок: "))
# вычисляем количество билетов за 60 поездок
num_60_bilet = math.ceil(n / 60)
# вычисляем количество оставшихся поездок после покупки билетов за 60 поездок
remainder = n % 60
# если остаток больше 20, покупаем билеты за 20 поездок
if remainder > 20:
num_20_bilet = (remainder // 20) + 1
num_1_bilet = 0
else:
num_20_bilet = 0
num_1_bilet = remainder
# выводим результаты
print("Необходимо купить:")
print(f"- {num_60_bilet} билетов за 60 поездок")
print(f"- {num_20_bilet} билетов за 20 поездок")
print(f"- {num_1_bilet} билетов за 1 поездку")
если не нравится текст в переменной n, можешь поменять на свой вкус



Для решения этой задачи мы можем воспользоваться жадным методом. Нам нужно выбрать, сколько билетов купить по каждой из доступных опций (1 поездка, 20 поездок, 60 поездок) так, чтобы общее количество билетов было не менее n и суммарная стоимость была минимальной.
Давайте напишем программу на Python, которая решит эту задачу:
pythondef min_tickets(n):
# Стоимость одной поездки
cost_single = 40
# Стоимость 20 поездок
cost_20 = 600
# Стоимость 60 поездок
cost_60 = 1500
# Ищем, сколько максимально возможно купить билетов по каждой опции
max_single_tickets = n
max_20_tickets = n // 20
max_60_tickets = n // 60
# Перебираем количество билетов по одной поездке и выбираем лучший вариант
min_cost = float('inf')
best_combo = (0, 0, 0)
for single_tickets in range(max_single_tickets + 1):
for _20_tickets in range(max_20_tickets + 1):
for _60_tickets in range(max_60_tickets + 1):
total_tickets = (
single_tickets + _20_tickets * 20 + _60_tickets * 60
)
total_cost = (
single_tickets * cost_single
+ _20_tickets * cost_20
+ _60_tickets * cost_60
)
# Проверяем, что общее количество билетов не меньше n
if total_tickets >= n and total_cost < min_cost:
min_cost = total_cost
best_combo = (single_tickets, _20_tickets, _60_tickets)
return best_combo
n = int(input("Введите количество поездок n: "))
best_combo = min_tickets(n)
print(
f"Необходимо купить {best_combo[0]} билетов за 1 раз, {best_combo[1]} билетов за 20 раз, и {best_combo[2]} билетов за 60 раз."
)
Программа сначала находит максимально возможное количество билетов по каждой опции, а затем перебирает все возможные комбинации билетов и выбирает ту, которая удовлетворяет условиям задачи и имеет минимальную стоимость.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili