Задать вопрос
@vlaadwd

Бесконечный цикл при некоторых условиях, почему?

n = int(input())
kup = 0
while n != 0:
    if n-500 >= 0:
        n-=500
        kup += 1
        while n != 0:
            if n-500 >= 0:
                kup += 1
            else: break
    elif n-200 >= 0:
        kup += 1
        n-= 200
        while n != 0:
            if n-200 >= 0:
                kup += 1
                n-=200
            else: break
    elif n-100 >= 0:
        kup += 1
        n-= 100
        while n != 0:
            if n-100 == 0:
                kup += 1
                n-=100
            else: break
    elif n-50 >= 0:
        kup += 1
        n-= 50
        while n != 0:
            if n-50 >= 0:
                kup += 1
                n-=50
            else: break
            
    elif n-20 == 0:
        kup += 1
        n-= 20
        while n != 0:
            if n-20 >= 0:
                kup += 1
                n-=20
            else: break
    elif n-10 == 0:
        kup += 1
        n-= 10
        while n != 0:
            if n-10 >= 0:
                kup += 1
                n-=10
            else: break
    elif n-5 == 0:
        kup += 1
        n-= 5
        while n != 0:
            if n-5 >= 0:
                kup += 1
                n-=5
            else: break
    elif n-2 == 0:
        kup += 1
        n-= 2
        while n != 0:
            if n-2 >= 0:
                kup += 1
                n-=2
            else: break
    elif n-1 == 0:
        kup += 1
        n-= 1
        while n != 0:
            if n-1 >= 0:
                kup += 1
                n-=1
            else: break
print(kup)

Возможно не оптимизирован, она считает сколько минимально купюр надо чтобы было столько денег, при некоторых значениях просто ничего не выводит(думаю не выходит из цикла). Что делать? Как решить?
  • Вопрос задан
  • 100 просмотров
Подписаться 1 Простой Комментировать
Ответ пользователя Everything_is_bad К ответам на вопрос (2)
@Everything_is_bad
Что делать? Как решить?
дебажить, в простом случае расставить принты, либо освоить инструменты, тот же pdb (сейчас он вообще в одну функцию вызывается breakpoint)
Ответ написан
Комментировать