Будем рассуждать так: пусть сумма, которую надо разменять, равна некоторому числу 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 трёшки.
Такой алгоритм позволяет дать размен минимальным количеством монет.
Для небольшого удобства в программе этот выбор записан немного по-другому. Код во вложении.