С++ Створити клас «Монітор» (з полями: тип монітору, розмір діагоналі, ціна).
Визначити конструктор ініціалізації, методи для встановлення/зміни значень полів, методи для виведення вмісту об’єкту на екран і метод для перерахунку вартості монітору із вказаною знижкою.
Создать класс "Монитор" (с полями: тип монитора, размер диагонали, цена). Определить конструктор инициализации, методы установки/изменения значений полей, методы вывода содержимого объекта на экран и метод пересчета стоимости монитора с указанной скидкой.
Самый простой случай из оставшихся - если осталось отдать 3 рубля. В таком случае выдаём оставшуюся трёшку и радуемся выполненной задаче.
Иначе придется изменять количество выданных пятерок - при "жадном" выборе решения не получилось.
- Попробуем убрать одну пятерку. Если оставалось выдать 1 рубль или 4 рубля - теперь нужно выдать 5+1=6 рублей или 5+4=9 рублей соответственно, но это можно сделать только трёшками.
- Попробуем убрать две пятерки. Если оставалось выдать 2 рубля, то теперь надо выдать 12 рублей, что опять-таки можно сделать трёшками.
Резюмируем.
Если amount делится на 5, то надо выдать (amount//5) пятерок и 0 трёшек.
Если amount дает остаток 1 при делении на 5, то надо выдать (amount//5 - 1) пятерок и 2 трёшки.
Если amount дает остаток 2 при делении на 5, то надо выдать (amount//5 - 2) пятерок и 4 трёшки.
Если amount дает остаток 3 при делении на 5, то надо выдать (amount//5) пятерок и 1 трёшку.
Если amount дает остаток 4 при делении на 5, то надо выдать (amount//5 - 1) пятерок и 3 трёшки.
Такой алгоритм позволяет дать размен минимальным количеством монет.
Для небольшого удобства в программе этот выбор записан немного по-другому. Код во вложении.
var
i,n:integer;
a:longint;
p:real;
begin
p:=1;
Repeat
readln(n);
Until (n>=0)and(n<=200);
for i:=1 to n do
begin
readln(a);
p:=p*a;
end;
writeln(p);
end.
2)
var
i,n:integer;
a,max:longint;
begin
Repeat
readln(n);
Until (n>=0)and(n<=200);
for i:=1 to n do
begin
readln(a);
if a>max then
max:=a;
end;
writeln(max);
end.
3)
var
i,n:integer;
a,min:longint;
begin
Repeat
readln(n);
Until (n>=0)and(n<=200);
for i:=1 to n do
begin
readln(a);
if a<min then
min:=a;
end;
writeln(min);
end.