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

Билет на одну поездку в метро стоит 15 рублей, билет на 5 поездок стоит 70 рублей, билет на 10 поездок стоит 125 рублей, билет на 20 поездок стоит 230 рублей, билет на 60 поездок стоит 440 рублей. пассажир планирует совершить n поездок.
определите, сколько билетов каждого вида он должен приобрести, чтобы суммарное количество оплаченных поездок было не меньше n, а общая стоимость приобретенных билетов – минимальна. формат входных данных дано одно число n -
количество поездок. формат выходных данных выведите пять целых чисел, равные необходимому количеству билетов на 1, на 5, на 10, на 20, на 60 поездок. если для какого-то данного n существует несколько приобретения билетов
одинаковой стоимости, необходимо вывести ту комбинацию билетов, которая дает большее число поездок.

👇
Ответ:
//PascalABC.NET
//Версия 3.3, сборка 1634 (14.02.2018)

begin
  var (cost, t, k) := (Arr(15, 70, 125, 230, 440), Arr(1, 5, 10, 20, 60), new integer[5]);
  var n := ReadInteger('n->');
  for var i := 4 downto 0 do
  begin
    k[i] := n div t[i];n := n mod t[i];
  end; 
  if k[0] * cost[0] >= cost[1] then begin k[0] := 0;inc(k[1]); end;
  if k[0] * cost[0] + k[1] * cost[1] >= cost[2] then 
  begin
    k[0] := 0;k[1] := 0;inc(k[2]); 
  end;
  if k[0] * cost[0] + k[1] * cost[1] + k[2] * cost[2] >= cost[3] then 
  begin
    k[0] := 0;k[1] := 0;k[2] := 0;inc(k[3]);
  end;
  if k[0] * cost[0] + k[1] * cost[1] + k[2] * cost[2] + k[3] * cost[3] >= cost[4] then 
  begin
    k[0] := 0;k[1] := 0;k[2] := 0;k[3] := 0;inc(k[4]); 
  end;
  
  for var i := 0 to 4 do WritelnFormat('{0} билет(ов)- {1} штук(а)', t[i], k[i]);
end.

Пример(1):
n-> 37
1 билет(ов)- 0 штук(а)
5 билет(ов)- 0 штук(а)
10 билет(ов)- 0 штук(а)
20 билет(ов)- 0 штук(а)
60 билет(ов)- 1 штук(а)

Пример(2):
n-> 35
1 билет(ов)- 0 штук(а)
5 билет(ов)- 1 штук(а)
10 билет(ов)- 1 штук(а)
20 билет(ов)- 1 штук(а)
60 билет(ов)- 0 штук(а)
4,8(64 оценок)
Открыть все ответы
Ответ:
nik22041
nik22041
16.05.2022

// PascalABC.NET 3.4.2, сборка 1785 от 06.09.2018

// Внимание! Если программа не работает, обновите версию!

procedure LocationPrint(x, y: real);

begin

 if x = 0 then

   if y = 0 then Writeln('Начало координат')

   else Writeln('Ось Y')

 else

 if y = 0 then Writeln('Ось X')

   else

 if x > 0 then

   if y < 0 then Writeln('Четвертая четверть')

   else Writeln('Первая четверть')

     else

 if y < 0 then Writeln('Третья четверть')

 else Writeln('Вторая четверть')

end;


begin

 loop 2 do

 begin

   var (x, y) := ReadReal2('Введите координаты x и y:');

   LocationPrint(x, y)

 end

end.

4,4(14 оценок)
Ответ:
vangok31
vangok31
16.05.2022

// PascalABC.NET 3.4.2, сборка 1785 от 06.09.2018

// Внимание! Если программа не работает, обновите версию!

begin

 var n:=ReadInteger('Количество строк (столбцов) в матрице:');

 Writeln('*** Исходная матрица ***');

 var a:=MatrRandom(n,n,-99,99);

 a.Println(4);

 Println(4*a.ColCount*'-');

 var i:=ReadInteger('Укажите номер столбца (счет от 1):');

 if i.InRange(1,a.ColCount) then

 begin

   var col:=a.Col(i-1);

   Println('Сумма элементов столбца',col.Sum,'max=',col.Max)

 end

 else

   Println('Недопустимый номер колонки')

end.


Дана матрица n x n, вывести элемент i-го столбца, найти их сумму и max элемент. код программы на язы
4,7(55 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ