Я пишу программу, которая находит комбинацию номиналов, которые можно использовать для представления этой цены без повторения номинала. Лог c прост, но я не могу выйти из этого l oop в моем коде
Denom=[1]
Final_Price=int(input("Enter the maximum price"))
current_number=2
while(current_number<=Final_Price):
present_number=current_number
i=1
while(present_number!=0): ##problematic loop
try:
a=Denom[-i]
print("current denom = "+str(a)+"\npresent number = "+str(present_number)+"\ncurrent number = "+str(current_number))
if(Denom[-i]<=present_number):
present_number=present_number-Denom[-i]
except IndexError as exception:
if(present_number!=0):
Denom.append(current_number)
present_number=0
break
else:
present_number=0
break
print(i)
i=i+1
current_number=current_number+1 ##program has not reached this
Я попытался использовать функцию break, которая не сработала, поэтому я попытался заставить условие while l oop стать ложный. Что именно здесь происходит не так
Пример вывода:
Streaming output truncated to the last 5000 lines.
27230
current denom = 2
present number = 1
current number = 3
27231
current denom = 2
present number = 1
current number = 3
27232
current denom = 2
present number = 1
current number = 3
27233
current denom = 2
present number = 1
current number = 3
27234
current denom = 2
present number = 1
current number = 3
27235
current denom = 2
present number = 1
current number = 3
27236