Как исправить ошибку, не выводя результаты печати, и решить, «сколько из 10 и 50 из 160 счетов составляет 1760 долларов США»? - PullRequest
1 голос
/ 24 октября 2019

Я работаю над тем же назначением, связанным ниже.

( Mo 'Money- Создание «алгоритма» для решения двух задач с переменной алгеброй )

IЯ пробовал приведенное ниже решение для связанного назначения.

for fifties in range(161):
      tens = 160 - fifties
      if 50*fifties + 10*tens == 1760:
           break

Я столкнулся с теми же проблемами, с которыми сталкивался мой код:

1. Нижеприведенный код заканчивается на "break" и будетне печатать значения «пятидесятых» и «десятков»

2. Когда я вручную печатаю значения, пятидесятые всегда печатает со значением 160.

Мой код указан ниже.

for tens in range(161,-1):
  fifty = (160 - 10*tens)/50 
  if 10*tens + 50*fifty == 1760:
     print(tens,fifty)

1 Ответ

0 голосов
/ 24 октября 2019

Во-первых, 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 - это простой способ сохранить значения после того, как вы нашли решение.

...