Задание 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\)