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

написать алгоритм чтобы прийти в исходную позицию??


написать алгоритм чтобы прийти в исходную позицию??

Показать ответ
Ответ:
Mihrimah1
Mihrimah1
22.06.2022 00:56

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

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крин из редактора кода тоже прикрепил)


На питоне через рекурсию На складе в контейнеры упаковывают пакеты с мукой. Сначала мука пакуется в
0,0(0 оценок)
Ответ:
Dimoon122
Dimoon122
23.01.2020 08:46

Объяснение:

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL, "Rus");

const int n = 20;

int arr[n];

for (int i = 0; i < n; i++)

{

 cout << "Введите  число массива: "; cin >> arr[i];

}

cout << "Наш массив будет состоять из таких элиментов: " << endl;

for (int j = 0; j < n; j++)

{

 cout << arr[j] << endl;

}

cout << "Положительные элименты массива: "<< endl;

int summ = 0;

for (int e = 0; e < n; e++)

{

 if (arr[e] > 0)

 {

  cout << arr[e] << endl;

  summ += arr[e];

 }

}

cout << "Сумма положительных элиментов= " << summ << endl;

cout << "Негативные элименты массива: " << endl;

int prolif = 1;

for (int f = 0; f < n; f++)

{

 if (arr[f] < 0)

 {

  cout << arr[f] << endl;

  prolif *= arr[f];

 }

}

cout << "Произвидение негативных элиментов массива= " << prolif << endl;

 

return 0;

}

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