Вопрос задан 21.06.2023 в 14:39. Предмет Информатика. Спрашивает Котик Софья.

В старину на Руси для измерения объёма использовали величины шкалик, чарка, штоф, ведро и бочка.

При этом: · 1 чарка = 2 шкалика; · 1 штоф = 10 чарок; · 1 ведро = 10 штофов; · 1 бочка = 40 вёдер. На вход программы подаётся натуральное число N – объём объекта в шкаликах. Нужно написать программу, которая возвращает 5 неотрицательных целых чисел A, B, C, D, E – количество бочек, вёдер, штофов, чарок и шкаликов соответственно, в сумме дающих ровно N шкаликов. При этом, значение E должно быть меньше 2 (так как 2 шкалика дают чарку), D и C должны быть меньше 10 (так как 10 чарок дают штоф, а 10 штофов – ведро), значение B должно быть меньше 40 (так как 40 вёдер дают бочку). Описание входных и выходных данных На вход программы подаётся натуральное число N (1 меньше или равно N меньше или равно 100000). В качестве результата программа должна напечатать через пробел 5 неотрицательных целых чисел A, B, C, D, E – количество бочек, вёдер, штофов, чарок и шкаликов, в сумме дающих ровно N шкаликов. При этом, значение E должно быть меньше 2 (так как 2 шкалика дают чарку), D и C должны быть меньше $$10$$ (так как $$10$$ чарок дают штоф, а $$10$$ штофов – ведро), значение $$B$$ должно быть меньше $$40$$ (так как $$40$$ вёдер дают бочку). Пример входных данных: $$8225$$ Пример выходных данных для приведённого выше примера входных данных: $$1$$ $$1$$ $$1$$ $$2$$ $$1$$ Требуется написать эффективную по времени и памяти программу. Перед текстом программы обязательно опишите алгоритм решения. Укажите используемый язык программирования и его версию. СРОЧНО НУЖЕН ОТВЕТ МАКСИМУМ ЧЕРЕЗ 3 ЧАСА, НА ЗНАЧКИ ДОЛЛАРА НЕ ОБРАЩАЙТЕ ВНИМАНИЯ
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Трофимова Лена.

Ответ:

не знаю, вроде бы так, написал на с++, могу попробовать на питоне, хотя не особо его знаю

Объяснение:

#include <iostream>

using namespace std;

int main()

{

 int n;

 cin >> n;

 cout << n / 200 << " ";

 n %= 200;

 cout << n / 50 << " ";

 n %= 50;

 cout << n / 5 << " ";

 n %= 5;

 cout << n / 2 << " ";

 n %= 2;

 cout << n;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи можно использовать жадный алгоритм. Мы будем поочередно вычитать из N значения, соответствующие бочкам, вёдрам, штофам, чаркам и шкаликам, удовлетворяя условиям задачи. Начнем с самых крупных единиц измерения (бочек), и будем двигаться к менее крупным.

Вот алгоритм:

  1. Инициализируем пять переменных: A, B, C, D, E, которые представляют количество бочек, вёдер, штофов, чарок и шкаликов соответственно. Их начальное значение равно нулю.

  2. Вычитаем из N, пока N больше нуля, следующим образом:

    • Если N >= 40, то увеличиваем A на 1 и вычитаем 40 из N.
    • Если N >= 10, то увеличиваем B на 1 и вычитаем 10 из N.
    • Если N >= 10, то увеличиваем C на 1 и вычитаем 10 из N.
    • Если N >= 2, то увеличиваем D на 1 и вычитаем 2 из N.
    • В остальных случаях (N < 2), увеличиваем E на N и обнуляем N.
  3. Выводим A, B, C, D, и E через пробел.

Этот алгоритм обеспечивает минимальное количество бочек, вёдер, штофов, чарок и шкаликов для заданного объема N.

Вот пример кода на Python, реализующий этот алгоритм:

python
N = int(input()) # Вводим N A, B, C, D, E = 0, 0, 0, 0, 0 while N > 0: if N >= 40: A += 1 N -= 40 elif N >= 10: B += 1 N -= 10 elif N >= 10: C += 1 N -= 10 elif N >= 2: D += 1 N -= 2 else: E += N N = 0 print(A, B, C, D, E)

Этот код решит задачу и вернет необходимые значения A, B, C, D и E.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос