Статья Автор: Лебедев Дмитрий

TUZ_7-02_Точный размен монет с учетом имеющихся номиналов

TUZ_7-02_Точный размен монет с учетом имеющихся номиналов

TUZ_7-02_Точный размен монет с учетом имеющихся номиналов
7.2. Точный размен монет с учетом имеющихся номиналов
Пусть дано положительное целое число – некоторая сумма денег – и массив номиналов монет в порядке убывания
и нужно выразить эту сумму в номиналах монет. Гарантируется, что наименьший номинал монеты в массиве равен 1.
Например, если сумма равна 583 и в нашем распоряжении имеются монеты с номиналами [142, 73, 45, 17, 13, 7, 1],
то эту сумму можно выразить в виде набора монет как [142, 142, 142, 142, 13, 1, 1].
Ваша задача: написать функцию, которая принимает положительное целое число и массив номиналов монет
и возвращает массив номиналов монет, общая стоимость которых в точности равна введенной сумме.
В табл. 7.2 показаны ожидаемые результаты для некоторых входных данных.
Таблица 7.2. Некоторые ожидаемые результаты для задачи размена монет с учетом имеющихся номиналов
Amount, coins Ожидаемый результат
583
142, 73, 45, 17, 13, 7, 1
142, 142, 142, 142, 13, 1, 1
26
142, 45, 7, 1
7, 7, 7, 1, 1, 1, 1, 1
174
94, 73, 17, 13, 7, 4, 3, 1
94, 73, 7
1
142, 3, 1
1
 

Алгоритм
  1.  Принимаются amount – заданная сумма и coins – список номиналов имеющихся монет.
  2.  Создается пустой список smallercoins для хранения наименьшего числа монет, составляющих сумму.
  3.  Для каждого номинала в списке coins повторяются шаги 4–6.
    1.  Проверяется, превышает ли оставшаяся сумма amount значение coin – номинал текущей монеты.
    2.  Если оставшаяся сумма больше или равна номиналу текущей монеты, то значение номинала текущей монеты coin вычитается из суммы amount и добавляется в список smallercoins.
    3. Если оставшаяся сумма amount меньше номинала текущей монеты coin, то выбирается следующая монета из списка coins
      7. После проверки всех монет возвращается список smallercoins, содержащий наименьшее число монет,
          составляющих заданную сумму.


Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать