Top.Mail.Ru
Ответы

23 ЗАДАНИЕ ЕГЭ ИНФОРМАТИКА

как решить рекурсией?

Некий исполнитель преобразует число, записанное на экране. У исполнителя есть три команды, которым при своены номера:
1. Прибавь 5
2. Прибавь 10
3. Умножь на последнюю цифру текущего числа
Первая из них увеличивает число на 5, вторая увеличивает число на 10, а третья умножает число на последнюю цифру его десятичной записи. Программа для исполнителя - это последовательность команд.
Сколько существует программ, которые преобразуют исходное число 10 в число 220, если известно, что любая из команд увеличивает число?

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Просветленный
2мес
1234567891011121314
 from functools import cache

@cache
def f(n):
  if n > 220:
    return 0
  if n == 220:
    return 1
  ways, r = f(n + 5) + f(n + 10), n % 10
  if r > 1:
    ways += f(r * n)
  return ways

print(f(10)) 

P.S. Почему не даёте бан троллям?!

Аватар пользователя
Просветленный
2мес

345

Аватар пользователя
Знаток
2мес

НЕ ЗНАЮ

Аватар пользователя
2мес

НЕ БУДУ РЕШАТЬ