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

Давным-давно билет на одну поездку в метро стоил 15 рублей, билет на 10 поездок стоил 125 рублей, билет на 60 поездок стоил 440 рублей. пассажир планирует совершить n поездок. определите, сколько билетов каждого вида он должен приобрести, чтобы суммарное количество оплаченных поездок было не меньше n, а общая стоимость приобретенных билетов — минимальна.

входные данные
программа получает на вход одно число n.

выходные данные
программа должна вывести три целых числа, равных необходимому количеству билетов на 1, на 10, на 60 поездок.

примеры
входные данные
36
выходные данные
0 0 1
входные данные
64
выходные данные
4 0 1

решить в python

Показать ответ
Ответ:
wagnercop06s12
wagnercop06s12
10.10.2019 16:20

//pascalabc.net

//версия 3.3, сборка 1634 (14.02.2018)

begin

  var (cost, t, k) : = (arr(15, 70, 125, 230, 440), arr(1, 5, 10, 20, 60), new integer[5]);

  var n : = readinteger('n-> ');

  for var i : = 4 downto 0 do

  begin

    k[i] : = n div t[i]; n : = n mod t[i];

  end;  

  if k[0] * cost[0] > = cost[1] then begin k[0] : = 0; inc(k[1]); end;

  if k[0] * cost[0] + k[1] * cost[1] > = cost[2] then 

  begin

    k[0] : = 0; k[1] : = 0; inc(k[2]);  

  end;

  if k[0] * cost[0] + k[1] * cost[1] + k[2] * cost[2] > = cost[3] then 

  begin

    k[0] : = 0; k[1] : = 0; k[2] : = 0; inc(k[3]);

  end;

  if k[0] * cost[0] + k[1] * cost[1] + k[2] * cost[2] + k[3] * cost[3] > = cost[4] then 

  begin

    k[0] : = 0; k[1] : = 0; k[2] : = 0; k[3] : = 0; inc(k[4]);  

  end;

 

  for var i : = 0 to 4 do writelnformat('{0} билет(ов)- {1} штук(а)', t[i], k[i]);

end.

пример(1):

n-> 37

1 билет(ов)- 0 штук(а)

5 билет(ов)- 0 штук(а)

10 билет(ов)- 0 штук(а)

20 билет(ов)- 0 штук(а)

60 билет(ов)- 1 штук(а)

пример(2):

n-> 35

1 билет(ов)- 0 штук(а)

5 билет(ов)- 1 штук(а)

10 билет(ов)- 1 штук(а)

20 билет(ов)- 1 штук(а)

60 билет(ов)- 0 штук(а)

подробнее - на -

0,0(0 оценок)
Ответ:
Ларейн2772
Ларейн2772
09.01.2024 23:03
Добрый день! Давайте разберемся с задачей.

У нас есть три вида билетов: на 1 поездку, на 10 поездок и на 60 поездок. Нам нужно определить, сколько билетов каждого вида мы должны приобрести, чтобы суммарное количество оплаченных поездок было не меньше n, а общая стоимость приобретенных билетов была минимальной.

Предлагаю решить эту задачу пошагово в следующем порядке:

1. Начнем с того, что прочитаем входные данные. У нас есть число n - количество поездок, которые пассажир планирует совершить. Для этого воспользуемся функцией input(). Напишем:

n = int(input())

2. Теперь нам нужно определить, сколько билетов каждого вида нам нужно приобрести.

Начнем с билетов на 60 поездок. Один такой билет стоит 440 рублей, а значит одна поездка на 60-кратном билете стоит 440 / 60 = 7.33 рубля.
Чтобы узнать, сколько поездок на 60-кратном билете можно оплатить, мы должны разделить количество денег, которое у нас есть, на стоимость одной поездки в билете на 60 поездок. Но для начала проверим, делится ли количество поездок, которое пассажир планирует совершить, на 60 без остатка. Для этого воспользуемся операцией %, которая возвращает остаток от деления. Если остаток равен 0, значит количество поездок делится на 60 без остатка и нам нужно приобрести только билеты на 60 поездок. Если остаток не равен 0, значит количество поездок не делится на 60 без остатка и нам нужно будет приобрести еще билеты на 1 и/или на 10 поездок.

Напишем код для определения количества билетов на 60 поездок:

if n % 60 == 0:
count_60 = n // 60 # количество билетов на 60 поездок
else:
count_60 = n // 60 + 1

3. Теперь перейдем к билетам на 10 поездок. Мы уже знаем количество билетов на 60 поездок. Чтобы определить, сколько билетов на 10 поездок нам нужно приобрести, вычтем из общего количества поездок количество поездок, которые можно сделать на 60-кратном билете. То есть, количество билетов на 10 поездок будет равно остатку от деления общего количества поездок на 10. Напишем:

count_10 = (n - count_60 * 60) // 10

4. И, наконец, перейдем к билетам на 1 поездку. Определить количество билетов на 1 поездку можно, просто вычтя из общего количества поездок уже оплаченные поездки на 10 и 60 поездок. Напишем:

count_1 = n - count_10 * 10 - count_60 * 60

5. Теперь остается только вывести полученные значения. Напишем:

print(count_1, count_10, count_60)

Таким образом, получается полный код для решения этой задачи на языке Python:

```
n = int(input())

if n % 60 == 0:
count_60 = n // 60
else:
count_60 = n // 60 + 1

count_10 = (n - count_60 * 60) // 10
count_1 = n - count_10 * 10 - count_60 * 60

print(count_1, count_10, count_60)
```

Надеюсь, что данное пошаговое решение помогло вам понять, как решить данную задачу школьному ученику. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их!
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота