Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 16. Информатика. ЕГЭ. Поляков-4967
- Просмотры: 49
- Изменено: 15 августа 2026
Алгоритм вычисления значения функции \(F(n),\) где \(n\) – целое неотрицательное число, задан следующими соотношениями:
- \(F(0) = 5\)
- \(F(n) = 1 + F(n \, / \, 2),\) если \(n > 0\) и \(n\) чётное
- \(F(n) = F(n \, // \, 2)\) в остальных случаях
Здесь \(//\) означает деление нацело. Определите количество значений \(n\) на отрезке \([1,~1~000~ 000~ 000],\) для которых \(F(n) = 7.\)
Решение:
Минимальное значение функции \(F(n)\) равно \(5.\) Если число нечётное, то просто отбрасывается последняя цифра в двоичной записи этого числа, если же число делится на \(2,\) т.е. в двоичной записи оно оканчивается на ноль, то к значению функции добавляется \(1.\) Т.о. функция \(F(n) = 7\) только для тех чисел, у которых в двоичной записи присутствует ровно два нуля.
Python
from itertools import combinations
q = 0
for n in range(2, 30):
for a, b in combinations(range(1, n + 1), 2):
tmp = ['1'] * (n + 1)
tmp[a] = '0'
tmp[b] = '0'
q += int(''.join(tmp), 2) < 1_000_000_000
print(q)
Ответ: \(3712\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


