![]() |
Цитата:
|
Цитата:
|
Это почти стандартная "задача о сдаче".
Обычно она реализуется "жадным" алгоритмом. Т.е. выдачей минимального количества монет (благо в условии номиналы подходящие). Но тут доп.условие на строгое количество монет. Проходимся жадным алгоритмом периодически исключая номиналы, пока получим (или не получим) искомое количество. |
Это как раз то, на что я кидал ссылку и о чем говорил Zebestov. :)
|
Цитата:
Или имеется в виду, что я не учел количество монеток в разложении? Это да. |
Нарезает же тупо от большего к меньшему. Он нарежет 1.1(остаток 1.2), 1.1 (остаток 0.1), 0.2(остаток -0.1, ошибка).
А надо 1.1, 1, 0.2 |
Да, верно, не учел )
|
Цитата:
Т.е. в начале получим 10 раз по 11. После попытки удлинить получим 10 раз по 10. Прибавляем 11, не получилось. Прибавляем 10, все сошлось. |
ответ такой:
Код AS3:
|
А я таки тоже сделал своим алгоритмом) Работает с любыми номиналами, с любым числом разложений. при ошибке невозможности разложения (когда минимальное число разложения больше, чем желаемое), выдаст сообщение
Единственный найденное пока ограничение - номиналы должны быть в порядке возрастания Код AS3:
|
| Часовой пояс GMT +4, время: 12:15. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.