Исполнитель преобразует число на экране.
У исполнителя есть три команды, которые обозначены буквами:
A. Вычесть 1
B. Умножить на 2
C. Умножить на 3
Программа для исполнителя – это последовательность команд. Например, программа BAC при исходном числе 2 последовательно получит числа 4, 3, 9.
Сколько существует программ, которые преобразуют исходное число 3 в число 20 и при этом не содержат двух команд A подряд?
Ответ:
СтатГрад Вариант ИН2310201 19 декабря 2023 – задание №23
Решение:
|
1 2 3 4 5 6 7 8 9 10 |
def f(n,k, flag): if n>(k+10): return 0 if n==k: return 1 if flag: return f(n*2,k, False) + f(n*3,k, False) else: return f(n-1,k, True)+f(n*2,k, False)+f(n*3,k, False) print(f(3, 20, False)) |
Ответ: 4
