Алгоритм вычисления значения функции , где
– натуральное число, задан следующими соотношениями:
, при
, когда n > 3 и четное
, когда n > 3 и нечетное
Назовите минимальное значение n, для которого F(n) = 43.
def f(n):
# Дописываем условие насчёт натуральных чисел
if n < 1:
return 0
if n <= 3:
return 3
if n > 3 and n % 2 == 0:
return 5 + f(n/2 - 4)
# Вместо n + f(n+2) вставляем 0,
# нам нужно не допускать нечётные числа,
# так как при них рекурсия продолжается бесконечно — каждый раз прибавляется значение,
# не меняющее чётность и не приближающее к n < 3
if n > 3 and n % 2 != 0:
return 0
for n in range(1, 10000):
if f(n) == 43:
print(n)
break
Ответ: 2296