Найти - Пользователи
Полная версия: Помогите найти причину некорректной работы кода
Начало » Python для новичков » Помогите найти причину некорректной работы кода
1 2 3
Denis_Yakovenko
Есть задача:
В некоторой стране используются денежные купюры достоинством в 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% случаев) может просто не работать при вводе любого другого числа, то есть просто ничего не возвращать. Подскажите, в чём может быть проблема?
FishHook
Это что такое?

q1, q2, q8, q16, q32, q64 = int, int, int, int, int, int
print q1
nokados
Denis_Yakovenko
n = n%8
q2 = n//2

четвертаки пропустил
Denis_Yakovenko
FishHook
это вроде как объявление переменных. По идее, каждая из них соответствует купюре определённого достоинства. А если Вы про кучу int'ов, то по другому не работает…
Denis_Yakovenko
nokados
ну это не столь важно, ведь
но всё же спасибо, так не заметил бы
FishHook
q1= q2=q8=q16=q32=q64=0
nokados
Замени
q1, q2, q8, q16, q32, q64 = int, int, int, int, int, int
на
q1=q2=q4=q8=q16=q32=q64 =0
Denis_Yakovenko
FishHook
Я заменил, но всё же код не работает при n = 1
nokados
Denis_Yakovenko
FishHook
Я заменил, но всё же код не работает при n = 1
Онлайн
А что выводит?
Euler
print([x//64]+list(bin(x%64)[2:]))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB