Сколькими разными способами можно составить £2, используя любое количество монет?
Задачу я решил и условие привел только чтобы было понятно, что делает программа. pences - кортеж возможных монет, total (глобальная переменная) - число разных способов составления £2. Функция count (рекурсивная) - подсчитывает значение total, в неё передаётся value - значение из pences, т.е. та монета из которой составляем £2, и part - число пенсов (т.е., к примеру, 100 + 50 + 20) Вопрос в следующем, почему если сразу написать total += count(value, part) (в программе закомментировано), то программа выдает неправильный ответ, а если ввести дополнительную переменную:
temp = count(value, part)
total += temp
то ответ верный?
pences = (200, 100, 50, 20, 10, 5, 2, 1) total = 0 def count(value, part): global total for i in range(0, 201, pences[value]): if part + i < 200 and value < 7: temp = count(value + 1, part + i) total += temp #total += count(value + 1, part + i) elif part + i == 200 or value == 7: return 1 else: return 0 temp = count(0, 0) total += temp #total += count(0, 0) print('Ответ:', total)