Алгоритм вычисления значения функции , где
— целое неотрицательное число, задан следующими соотношениями:
;
, если
четное;
, в остальных случаях.
В данной задаче означает деление нацело.
Определите количество значений на отрезке
, для которых
.
# создаем функцию из условия
def f(n):
if n == 0:
return 6
elif n > 0 and (n % 2) == 0:
return 1 + f(n//2)
else:
return f(n//2)
# перебираем все возможные входные значения
c = 0
for i in range(1, 10000 + 1):
t = f(i)
if t == 9:
c += 1
print(c)
Ответ: 718