В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Бота20081
Бота20081
27.10.2021 03:28 •  Информатика

Решить в паскале. покупатель должен заплатить в кассу s рублей. у него имеются 1, 2, 5, 10, 50, 100, 500-рублевые купюры. сколько купюр разного достоинства отдаст покупатель, если начнет платить с самых крупных?

Показать ответ
Ответ:
Женя220V
Женя220V
05.10.2020 12:48
PascalABC.NET 3.2, сборка 1383 от 09.02.2017
Внимание! Если программа не работает, обновите версию!

Используем "жадный" алгоритм. Он не всегда дает минимальное общее количество купюр, но зато простой в понимании.

begin
  var k:=Arr(500,100,50,10,5,2,1); // массив с достоинствами купюр
  var s:=ReadInteger('Введите сумму:'); // сумма к оплате
  Writeln('Уплатить:');
  var i:=0;
  while s>0 do begin
    var p:=s div k[i];
    if p>0 then Writeln(p,' шт. достоинством ',k[i],' руб.');
    s:=s mod k[i]; i+=1
    end;
end.

Примеры
Введите сумму: 3794
Уплатить:
7 шт. достоинством 500 руб.
2 шт. достоинством 100 руб.
1 шт. достоинством 50 руб.
4 шт. достоинством 10 руб.
2 шт. достоинством 2 руб.

Введите сумму: 507
Уплатить:
1 шт. достоинством 500 руб.
1 шт. достоинством 5 руб.
1 шт. достоинством 2 руб.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота