Форум сайта python.su
0
Есть задача:
В некоторой стране используются денежные купюры достоинством в 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)
Офлайн
568
Это что такое?
q1, q2, q8, q16, q32, q64 = int, int, int, int, int, int print q1
Офлайн
0
Denis_Yakovenko
n = n%8
q2 = n//2
Офлайн
0
FishHook
это вроде как объявление переменных. По идее, каждая из них соответствует купюре определённого достоинства. А если Вы про кучу int'ов, то по другому не работает…
Офлайн
0
nokados
ну это не столь важно, ведь
но всё же спасибо, так не заметил бы
Офлайн
568
q1= q2=q8=q16=q32=q64=0
Офлайн
0
Замени
q1, q2, q8, q16, q32, q64 = int, int, int, int, int, int
q1=q2=q4=q8=q16=q32=q64 =0
Офлайн
0
FishHook
Я заменил, но всё же код не работает при n = 1
Офлайн
0
Denis_YakovenkoА что выводит?
FishHook
Я заменил, но всё же код не работает при n = 1
Онлайн
Офлайн
1
print([x//64]+list(bin(x%64)[2:]))
Офлайн