М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
danilddp02kr1
danilddp02kr1
01.03.2023 04:00 •  Информатика

Решите ограничения: время - 200мс, память - 256ms в магазине два вида печенья. первый вид печенья упакован в коробки по а штук и стоит в центов за коробку, второй вид печенья упакован в коробки по с штук и стоит d центов за коробку. аня собирается угостить печеньем n гостей и хочет приобрести столько коробок печенья одного вида, чтобы каждому гостю досталось по одному печенью. например, для 22 гостей можно купить либо 3 коробки за 11 центов по 10 печений, либо 2 коробки за 15 центов по 12 печений. в первом случае аня потратит 33 цента, во втором случае - 30 центов. напишите программу, определяющую, какой вид печенья выгоднее купить. первая строка ввода содержит пять целых чисел a, b, c, d и n разделенных пробелами - информация о количестве печенья в коробке и стоимости для каждого вида печенья и количество гостей. в первой строке вывести сообщение «first», если выгоднее купить печенье первого вида, или сообщение «second», если выгоднее купить печенье первого вида, или сообщение «any», если стоимость приобретения n или более штук печенья для обоих видов одинакова. во второй строке вывести одно целое число - стоимость покупки.

👇
Ответ:
mistrgeniy
mistrgeniy
01.03.2023
PascalABC.NET 3.4.2, сборка 1847 от 28.10.2018Внимание! Если программа не работает, обновите версию!

begin

 var a, b, c, d, n: integer;

 Readln(a, b, c, d, n);

 var (ka, kc) := (Ceil(n/a), Ceil(n/c));

 var (sb, sd) := (b * ka, d * kc);

 if sb < sd then Writeln('FIRST', NewLine, sb)

 else

   if sd < sb then Writeln('SECOND', NewLine, sd)

   else Writeln('ANY', NewLine, sb)

end.

10 11 12 15 22SECOND30
4,5(10 оценок)
Ответ:
юлька438
юлька438
01.03.2023

var A,B,C,D,N,M,K,S: integer;

begin

 readln(A,B,C,D,N);

 M:=N div A;

 if M*A<N then M:=M+1;

 K:=N div C;

 if K*C<N then K:=K+1;

 S:=M*B;  

 if M*B<K*D then writeln('FIRST')

 else

    if M*B>K*D then

    begin

      S:=K*D;

      writeln('SECOND');

    end

    else writeln('ANY');

 writeln(S);    

end.

 

4,8(48 оценок)
Открыть все ответы
Ответ:
agroDan
agroDan
01.03.2023
1|, 2|, 3| и т.д. - номер строки.
1| Объявление переменных a,b и c типа integer (или int, числовые переменные)
2| Начало программы
3| Присваивание значений переменным a,b,c. Всем им присвоили значение 0.
4| Простыми словами: пока a умножить на 2 меньше 200, то
5| Присваивание значений переменным: b = b + 3
6| c = c - 1
7| a = a + b + c. Тут хочу пояснить: при значении этих переменных 0, a = 0 + 3 - 1, т.е. a = 2. Возвращаемся к началу цикла, т.к. 2 * 2 меньше 200: b = 3 + 3; c = -1 - 1; a = 2 + 6 - 2, т.е. 6. И так далее: 12, 20, 30, 42, 56, 72, 90, 110.
8| Конец цикла while (4 строка).
9| Напишем a - 10 (110 - 10 = 100)
10| Конец программы.

Я вообще не знаю Pascal (даже не начинал изучать), поэтому тут могут быть некоторые неточности или слишком заумные слова, надеюсь на понимание :)
4,4(13 оценок)
Ответ:
MaliaCr
MaliaCr
01.03.2023

Чтобы перевести число в двоичную систему (в таком виде каждый его разряд будет отображать состояние соответствующего бита), нужно делить его на основание системы (то есть, делить на два).

Но, деление нужно делать с остатком (т.е. делим нацело и пишем результат и целый остаток от деления- либо ноль, либо единица):

42 : 2 = 21  (остаток 0)

21 : 2 = 10  (остаток 1)

10 : 2 = 5  (остаток 0)

5 : 2 = 2  (остаток 1)

2 : 2 = 1  (остаток 0)

1 : 2 = 0  (остаток 1)

Всё, деление окончено, осталось только составить из остатков (начиная с последнего) двоичное число. Вот что мы получим в итоге:

42₁₀ = 101010₂

Можно само деление делать уголком (смотри приложенную картинку). Там, красным обозначены остатки от деления и последний результат (единица), с которой и начинают составлять двоичное число.


Как число 42 перевести в биты? объясните
4,7(39 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ