ЕГЭ, ОГЭ, программирование и робототехника в Калининграде

№ 13101. Типовая задача

Исполнитель преобразует число на экране.

У исполнителя есть две команды, которые обозначены латинскими буквами:
A. Вычти 1
B. Найди целую часть от деления на 2

Первая из них уменьшает число на экране на 1, вторая заменяет число на экране на целую часть от деления числа на 2.

Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 50 результатом является число 1, и при этом траектория вычислений содержит число 20?

Траектория вычислений программы – это последовательность результатов выполнения всех команд программы.
Например, для программы ABB при исходном числе 10 траектория состоит из чисел 9, 4, 2.

def f(x, y):

    if x == y:
        return 1

    if x < y:
        return 0

    if x > y:
        return (f(x - 1, y) + f(x // 2, y))


print(f(50, 20) * f(20, 1))
Разберём это задание на бесплатном пробном занятии

Преподаватель покажет, как решать такие задачи, и подскажет, с чего начать подготовку. Группы до 8 человек, очно в Калининграде и онлайн.

Записаться на пробное занятие