Реши задачу на Python
На Диком западе ходят купюры номиналами
�
1
,
�
2
,
…
,
�
�
a
1
,a
2
,…,a
m
долларов. Однажды ковбой Джо решил ограбить банк. Он выбрал очень неудачный момент для ограбления, ведь сейчас в банке находятся ровно по две купюры каждого существующего номинала.
Ковбой Джо хочет украсть ровно
�
n долларов, ни долларом больше, ни долларом меньше. Помогите ему или сообщите, что его план неосуществим.
python
def rob_bank(n, denominations):
combinations = []
for i in range(len(denominations)):
for j in range(i+1, len(denominations)):
combination = denominations[i] + denominations[j]
combinations.append(combination)
if n in combinations:
return "Ковбой Джо сможет украсть нужную сумму"
else:
return "Ковбой Джо не сможет украсть нужную сумму"
n = 10
denominations = [1, 2, 5, 10, 20]
print(rob_bank(n, denominations))
В данном примере искомая сумма n равна 10, а номиналы купюр представлены списком denominations = [1, 2, 5, 10, 20]. При запуске нашей функции rob_bank с этими данными, результат будет "Ковбой Джо не сможет украсть нужную сумму", так как невозможно получить сумму 10 из двух купюр каждого номинала.
Если же мы изменим искомую сумму, например, на 11 (n = 11), то результат будет "Ковбой Джо сможет украсть нужную сумму", так как возможно составить сумму 11 из двух купюр каждого номинала (1+10).
Таким образом, наш код решает задачу определения возможности украсть искомую сумму n из двух купюр каждого номинала.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет