Легко Решено: 0 Процент решений: 0%

Cash: Fewest Coins

Give change with as few U.S. coins as possible.

Чему вы научитесь

  • Сначала выбирать самую крупную монету
  • Использовать деление и остаток для количества
  • Понимать, когда жадная сдача оптимальна

Условие

A cashier gives change using quarters (25¢), dimes (10¢), nickels (5¢) and pennies (1¢). Always using the largest coin that still fits gives the fewest coins for these values. Return how many coins are needed for cents.

Implement fewest_coins(cents).

Input

cents: The change owed in cents.

Output

Return the minimum number of coins.

Ограничения

0 ≤ cents ≤ 1,000,000

Примеры

Пример 1
Ввод:
cents = 41

Ожидаемый вывод:
expected = 4
Ввод:
long long cents = 41;

Ожидаемый вывод:
long long expected = 4;
Ввод:
long cents = 41;

Ожидаемый вывод:
long expected = 4;

Пояснение

One quarter (25), one dime (35), one nickel (40) and one penny (41): 4 coins.

Пример 2
Ввод:
cents = 0

Ожидаемый вывод:
expected = 0
Ввод:
long long cents = 0;

Ожидаемый вывод:
long long expected = 0;
Ввод:
long cents = 0;

Ожидаемый вывод:
long expected = 0;

Пояснение

No change is owed: 0 coins.

Как подступиться

Сначала попробуйте сами, затем открывайте подсказки по одной.

Подсказка 1

Берите самую крупную монету, которая подходит, затем переходите к меньшим монетам с оставшейся суммой.

Подсказка 2

Используйте деление и остатки, чтобы эффективно посчитать каждый тип монет.

Подсказка 3

Будьте внимательны к точным кратным значениям, чтобы случайно не оставить остаток.

Ожидаемая сложность

время O(1), доп. память O(1)

Ссылки

Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.

Учитесь у других

Решения сообщества

Пока нет опубликованных решений. Решите задание, чтобы поделиться первым.