Алгоритм вычисления значения функции , где
— целое неотрицательное число, задан следующими соотношениями:
, если
целое число
иначе
Чему равно ?
Проанализируем, как изменяются значения на определенных значениях функции с помощью программы
def stepen(n):
while n > 1:
if n % 2 != 0:
return False
n //= 2
return True
def f(n):
if stepen(n):
return n
else:
return f(n - 1) + 2
Заметим, что функция от степеней двойки выводит само число, а для остальных получается значение *степень двойки* + 2. И так до следующей степени двойки.
Число более того,
Значит, что
Ответ: 1048576