Алгоритм вычисления значения функции , где
— целое неотрицательное число, а «/» — целочисленное деление, задан следующими соотношениями:
,
,
, если
, если
Чему будет равно значение, вычисленное при выполнении вызова
?
Примечание: знак // означает целочисленное деление.
Решение программой:
def F(n):
if n == 1 or n == 2 or n == 3:
return 1
if n > 3 and n % 2 == 0:
return F(n - 1) + F(n - 3) + F(n // 3)
if n > 3 and n % 2 != 0:
return F(n - 2) + F(n - 1)
print(F(30))
Ответ: 248055