Напишите программку размена любой суммы, большей 7 рублей, трешками и пятерками.
Напишите программу обмена хоть какой суммы, большей 7 рублей, трешками и пятерками.
программирование на языке питон
1 ответ
Андрей Лабужин
Будем рассуждать так: пусть сумма, которую надо разменять, одинакова некому числу amount. Дадим сначала наибольшее количество пятерок (но так, чтоб общая сумма пятерок не превосходила суммы, которую надобно разменять). Если нам удалось таким образом разменять всю сумму - победа! - иначе до общей суммы не хватит 1, 2, 3 либо 4 рубля.
Самый простой случай из оставшихся - если осталось отдать 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 трёшки.
Таковой алгоритм позволяет дать обмен наименьшим количеством монет.
Для маленького удобства в программке этот выбор записан немного по-другому. Код во вложении.
Самый простой случай из оставшихся - если осталось отдать 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 трёшки.
Таковой алгоритм позволяет дать обмен наименьшим количеством монет.
Для маленького удобства в программке этот выбор записан немного по-другому. Код во вложении.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов