Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 16. Информатика. ЕГЭ. Поляков-5418
- Просмотры: 46
- Изменено: 14 августа 2026
(А. Богданов) Алгоритм вычисления значения функции \(F(n),\) где \(n\) – целое неотрицательное число, задан следующими соотношениями:
- \(F(n) = n,\) если \(n < 2\)
- \(F(n) = F(n \, / \, 2) + 1,\) если \(n \geqslant 2\) и число \(n\) чётное,
- \(F(n) = F(3n + 1) + 1,\) если \(n \geqslant 2\) и число \(n\) нечётное.
Определите количество значений \(n\) на отрезке \([1;~100~000],\) для которых \(F(n)\) равно \(16.\)
Решение:
Python
F = {0: 0, 1: 1}
q = 0
for n in range(2, 100_001):
curr = n
stack = []
while curr not in F:
stack.append(curr)
if curr % 2 == 0:
curr = curr // 2
else:
curr = 3 * curr + 1
for d in stack[::-1]:
if d % 2 == 0:
F[d] = F[d // 2] + 1
else:
F[d] = F[3 * d + 1] + 1
q += F[n] == 16
print(q)
Ответ: \(24\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


