Исполнитель U18 преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера:
1. Вычесть 1
2. Вычесть 3
З. Разделить нацело на 3
При выполнении команды 3 выполняется деление нацело (остаток отбрасывается). Программа для исполнителя U18 — это последовательность команд. Сколько существует таких программ, которые исходное число 22 преобразуют в число 2?
Ответ:
«Некрыловские варианты» от Евгения Джобса — Вариант 5
Решение:
|
1 2 3 4 5 6 7 8 9 |
def f(x,y): if x<y: return 0 if x==y: return 1 if x>y: return f(x-1,y)+f(x-3,y)+f(x//3,y) print(f(22, 2)) |
Ответ: 2196