![]() |
|
||||||||||
|
|||||
|
Я думаю там можно обойтись простым алгоритмом с использованием наибольшего делителя из заданных.
То есть берем число, берем массив номиналов. Находим наибольший делитель из заданных номиналов, чтобы при целочисленном делении результат не был равен нулю (если делимое больше делителя, то после целочисленного деления получится ноль). Считаем это первым номиналом, запоминаем, увеличиваем счетчик найденных номиналов. Вычитаем из числа номинал, получаем новое число, которому таким же образом находим максимальный из возможных номинал. В итоге у нас получится какое-то количество (M) номиналов, которое будет или не будет равно желаемому количеству (N). Если M != N, то произвольно (или любым другим способом) берем один из имеющихся (найденных) номиналов, которые можно разложить с помощью других потенциальных номиналов, и раскладываем. Снова проверяем M != N, при необходимости повторяем То есть в случае с вашим примером с 2.53 по этому алгоритму найдется список номиналов [1, 1, 0.5, 0.01, 0.01, 0.01], а потом номинал 1 разложится на два номинала 0.5 Если нужно, могу накатать саму программу) |
|
|||||
|
Lorem ipsum
|
KumoKairo, а накатай. Ну и на работу вместо pivnoibaron выходи!
__________________
Поймай яблоко 2! |
|
|||||
|
Мне вот интересно, вот выложит тут кто-то алгоритм (в принципе задача о поиске пути в графе), получит pivnoibaron работу (если на интервью не завалится), а дальше что? Там же работать придется и не всегда можно будет вовремя получить решение задачи на форуме.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
Lorem ipsum
|
Я и alatar (почти одновременно) лишь высказали свое отношение к уровню современных "специалистов" и их подходом к своему профессиональному развитию в контексте этой темы. Обсуждать "критерии составления тестовых заданий" предлагаю где-нибудь во Флейме.
__________________
Поймай яблоко 2! |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Не можете придумать хорошо - решите прямым перебором.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
Lorem ipsum
|
Ну как бы алгоритм делится на два: сначала мы само собой находим минимальную комбинацию, потом "растягиваем" ее до указанного числа путем дробления.
__________________
Поймай яблоко 2! |
|
|||||
|
В принципе это один алгоритм. Дробление это тоже поиск минимальной комбинации, только в качестве цели берется число из уже полученной последовательности, пока не будет достигнута необходимая длина.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
А как растягиваем? Например если монеты 10, 11, 110, число 110, из 11 монет собрать.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|