В некоторой стране используются денежные купюры достоинством в 1, 2, 4, 8, 16, 32 и 64. Дано натуральное число п. Как наименьшим количеством таких денежных купюр можно выплатить сумму п (указать количество каждой из используемых для выплаты купюр)? Предполагается, что имеется достаточно большое количество купюр всех достоинств
Пришёл к такому решению:
def currency (): q1, q2, q8, q16, q32, q64 = int, int, int, int, int, int n = int(input('Введите N: ')) while n > 0: q64 = n//64 n = n%64 q32 = n//32 n = n%32 q16 = n//16 n = n%16 q8 = n//8 n = n%8 q2 = n//2 n = n%2 q1 = n print('по 64: ', q64) print('по 32: ', q32) print('по 16: ', q16) print('по 8: ', q8) print('по 2: ', q2) print('по 1: ', q1)
Работает правильно во всех случаях, кроме n = 1. При вводе единицы ничего не возвращает. Также иногда (в 30% случаев) может просто не работать при вводе любого другого числа, то есть просто ничего не возвращать. Подскажите, в чём может быть проблема?