Задание 23. Информатика. ЕГЭ. Демо-2025

Просмотры: 587
Изменено: 24 ноября 2024

Исполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены латинскими буквами:

A. Вычти \(2\)
B. Найди целую часть от деления на \(2\)

Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе \(38\) результатом является число \(2\) и при этом траектория вычислений содержит число \(16\)?

Траектория вычислений программы – это последовательность результатов выполнения всех команд программы.

Например, для программы \(ABB\) при исходном числе \(13\) траектория состоит из чисел \(11\), \(5\), \(2\).

Решение:

Python


def f(n ,t):
    if n < t:
        return 0
    elif n == t:
        return 1
    return f(n - 2, t) + f(n // 2, t)

print(f(38, 16) * f(16, 2))

C++


#include<iostream>

using namespace std;

int f(int n, int t) {
   if (n < t)
       return 0;
   else if (n == t)
       return 1;
   else
       return f(n - 2, t) + f(n / 2, t);

}

int32_t main() {
    cout << f(38, 16) * f(16, 2) << '\n';
}

Ответ: \(36\)