Хромов1501
?>

На питоне через рекурсию На складе в контейнеры упаковывают пакеты с мукой. Сначала мука пакуется в пакеты ровно по L кг в каждый, а потом пакеты - в контейнеры, причем в один контейнер помещается не более K пакетов. Последний контейнер может быть неполным. Всего имеется М кг муки. Сколько всего понадобится контейнеров, сколько пакетов будет в последнем контейнере и сколько кг муки останется на складе не упаковано (упаковать нужно как можно больше муки)? Написать программу: вводятся три целых числа M, K, L в одной строке; вывести три числа в одной строке - сначала количество потребовавшихся контейнеров, затем количество пакетов в последнем контейнере, а затем количество оставшейся муки (кг)

Информатика

Ответы

dsnewline

Исходный код:

def pack(m, k, l, p=0):

   c = 0  # базовый случай когда еще не создавали контейнеры

   # если есть что еще фасовать по пакетам

   if m >= l:

       m -= l

       p += 1

       c, p, m = pack(m, k, l, p)  # продолжаем фасовать муку

   # если можно создать контейнер, то создаем

   if p >= k:

       p -= k  

       c += 1

   return c, p, m

m, k, l = map(int, input().split())

print(*pack(m, k, l))

Примечание:

Часть объяснений выполнено в виде комментариев в коде. Комментарии перед отправкой на проверку рекомендую стереть.

Описание переменных: m - остаток муки на текущий момент, k - кол-во пакетов в контейнере, l - кол-во муки в пакете. c - кол-во полных контейнеров, p - кол-во полных пакетов муки. При рекурсивном погружении фасуем по пакетам, при всплытии фасуем по контейнерам. Грамотная возвращение и передача параметров делают свое дело.

Cкрин из редактора кода тоже прикрепил)


На питоне через рекурсию На складе в контейнеры упаковывают пакеты с мукой. Сначала мука пакуется в

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

На питоне через рекурсию На складе в контейнеры упаковывают пакеты с мукой. Сначала мука пакуется в пакеты ровно по L кг в каждый, а потом пакеты - в контейнеры, причем в один контейнер помещается не более K пакетов. Последний контейнер может быть неполным. Всего имеется М кг муки. Сколько всего понадобится контейнеров, сколько пакетов будет в последнем контейнере и сколько кг муки останется на складе не упаковано (упаковать нужно как можно больше муки)? Написать программу: вводятся три целых числа M, K, L в одной строке; вывести три числа в одной строке - сначала количество потребовавшихся контейнеров, затем количество пакетов в последнем контейнере, а затем количество оставшейся муки (кг)
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Irina_Nikolai
natalia-shelkovich
ovdei71
seleznev1980
turovvlad
Mexx9050
Alekseevich1012
Голосова-Лобанов1555
zibuxin6
Некрасов Валентина1097
Peshkov
antrotip
mariashapar
annaan-dr582
борисовна Елена78