Вопрос задан 13.07.2023 в 15:05. Предмет Информатика. Спрашивает Солнышкова Анастасия.

Детали Имеется n кг металлического сплава. Из него изготавливают заготовки массой k кг каждая.

После этого из каждой заготовки вытачиваются детали массой m кг каждая (из каждой заготовки вытачивают максимально возможное количество деталей). Если от заготовок после этого что-то остается, то этот материал возвращают к началу производственного цикла и сплавляют с тем, что осталось при изготовлении заготовок. Если того сплава, который получился, достаточно для изготовления хотя бы одной заготовки, то из него снова изготавливают заготовки, из них — детали и т.д. Напишите программу, которая вычислит, какое количество деталей может быть получено по этой технологии из имеющихся исходно n кг сплава. Программа получает на вход три натуральных числа n, k, m, каждое в отдельной строке, при этом m≤2×109,k≤2×109,n≤2×109. Выведите одно число — количество деталей, которое может получиться по такой технологии. Нужно решить только с использованием целочисленной арифметики, подчеркиваю!
0 0
Перейти к ответам

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

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

var n,k,m,kz,kd:integer;

begin

writeln('Введите n,k,m');

readln(n,k,m);//металл, вес заготовок, вес деталей

kd:=0;//количество деталей

while n>=k do //пока вес металла не меньше  веса заготовки

begin

 kz:=n div k;//количество заготовок

 kd:=kd+kz*(k div m);//количество деталей

 n:=n-kz*(k div m)*m;//остаток металла

end;

write('Количество деталей=',kd)

end.

Паскаль

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

Для решения этой задачи, мы можем использовать простой цикл, который будет выполнять производственный цикл до тех пор, пока есть достаточно материала для производства хотя бы одной заготовки. Здесь ключевой момент - это ограничение по времени и тому, что значения n, k и m могут быть очень большими, поэтому нужно быть осторожными и использовать целочисленную арифметику.

python
def count_details(n, k, m): total_details = 0 # Выполняем производственный цикл while n >= k: # Вычисляем количество заготовок num_billets = n // k # Вычисляем количество деталей num_details = num_billets * (k // m) # Добавляем количество деталей в общий счёт total_details += num_details # Вычисляем остаток сплава после производства заготовок n = n % k + num_details * m return total_details # Ввод данных n = int(input()) k = int(input()) m = int(input()) # Вычисляем и выводим результат result = count_details(n, k, m) print(result)

Программа принимает входные данные n, k, m и выводит количество деталей, которое может быть получено по заданной технологии из исходного сплава n. Здесь мы используем только целочисленную арифметику для решения задачи.

0 0

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

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

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

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