Как на Паскале решить задачу на 17 баллов, в которой требуется определить, сколько купюр каждого достоинства (100, 50, 10, 2, 1 рубль) нужно отдать покупателю, если он будет платить с самых крупных купюр, чтобы заплатить S рублей?
Информатика 11 класс Алгоритмы и структуры данных Паскаль задача на 17 баллов купюры расчёт суммы алгоритм информатика 11 класс
Для решения задачи на Паскале, в которой нужно определить, сколько купюр каждого достоинства нужно отдать покупателю, мы можем использовать простой алгоритм, который будет последовательно делить сумму S на номиналы купюр, начиная с самой крупной. Давайте рассмотрим шаги решения более подробно.
Теперь давайте напишем программу на Паскале, которая реализует этот алгоритм:
program ChangeCalculator;
var
S: integer;
count100, count50, count10, count2, count1: integer;
begin
{ Ввод суммы, с которой покупатель будет расплачиваться }
write('Введите сумму S: ');
readln(S);
{ Инициализация счетчиков купюр }
count100 := 0;
count50 := 0;
count10 := 0;
count2 := 0;
count1 := 0;
{ Определение количества купюр по каждому достоинству }
if S >= 100 then
begin
count100 := S div 100; { Количество купюр по 100 рублей }
S := S mod 100; { Остаток после расчета 100-рублевых купюр }
end;
if S >= 50 then
begin
count50 := S div 50; { Количество купюр по 50 рублей }
S := S mod 50; { Остаток после расчета 50-рублевых купюр }
end;
if S >= 10 then
begin
count10 := S div 10; { Количество купюр по 10 рублей }
S := S mod 10; { Остаток после расчета 10-рублевых купюр }
end;
if S >= 2 then
begin
count2 := S div 2; { Количество купюр по 2 рубля }
S := S mod 2; { Остаток после расчета 2-рублевых купюр }
end;
count1 := S; { Остаток - это количество 1-рублевых купюр }
{ Вывод результата }
writeln('Количество купюр по 100 рублей: ', count100);
writeln('Количество купюр по 50 рублей: ', count50);
writeln('Количество купюр по 10 рублей: ', count10);
writeln('Количество купюр по 2 рубля: ', count2);
writeln('Количество купюр по 1 рублю: ', count1);
end.
В этой программе мы сначала запрашиваем у пользователя сумму S, а затем последовательно вычисляем количество купюр каждого достоинства, начиная с 100 рублей. После выполнения всех расчетов мы выводим на экран количество купюр каждого номинала.
Таким образом, программа позволяет эффективно определить, сколько купюр какого достоинства следует отдать покупателю, используя жадный алгоритм.