Во-первых, range(161,-1)
не будет повторяться ни для каких элементов, поскольку первый аргумент start
больше, чем второй аргумент end
. Просто сделайте range(161)
.
Другое дело, что вы не используете свои переменные в соответствии с единицами, которые они должны представлять. Я объясню, пока описываю ваш сценарий:
for tens in range(161):
Здесь вы пытаетесь использовать разное количество десятидолларовых банкнот - от 0 до 160. Выглядит хорошо (теперь, когда мы прекратили итерацию на ничто ).
fifty = (160 - 10*tens)/50
Теперь это не имеет смысла. 10 * десятки - это долларовое значение от того, сколько десятков вы пытаетесь. почему вы вычитаете это из 160-общего количества счетов? Это две совершенно разные единицы, и нет смысла их вычитать. Вместо этого просто вычтите число десятков из общего числа счетов, чтобы получить число пятидесятых с помощью fifty = 160 - tens
if 10*tens + 50*fifty == 1760:
print(tens,fifty)
Предполагая, что десятки и пятьдесят означают число каждого типа счета - что в предыдущем пунктеохвачено - это нормально.
Итак, в целом ваш код выведет правильные значения десятков и пятидесяти, если будет выглядеть так:
for tens in range(161):
fifty = 160 - tens
if 10*tens + 50*fifty == 1760:
print(tens,fifty)
Решение использует break
, потому что выполнениеэто завершает цикл, так что значения tens
и fifty
являются правильными, и остальная часть программы может использовать их. Так как приведенный выше код, fifty
и tens
будут продолжать меняться даже после того, как решение найдено. Использование break
- это простой способ сохранить значения после того, как вы нашли решение.