1. Напишите программу, вычисления рекурсивной функции. Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(n) = –n при n < 0
F(n) = 2·n + 1 + F(n–3), если n ≥ 0 и чётно,
F(n) = 4·n + 2·F(n–4), если n ≥ 0 и нечётно.
Чему равно значение функции F(33)?
2. Напишите программу, вычисления рекурсивной функции. Алгоритм вычисления значения функции F(n), где n – целое число, задан следующими соотношениями:
F(n) = 1, при n < 2,
F(n) = F(n/2) + 1, когда n ≥ 2 и чётное,
F(n) = F(n - 3) + 3, когда n ≥ 2 и нечётное.
Назовите количество значений n на отрезке [1;100000], для которых F(n) равно 12.

ответом на задачи является программа на языке python.

danilf999 danilf999    1   27.01.2022 11:25    1

Ответы
olesyasa1 olesyasa1  27.01.2022 11:30

1)

def f(n):

   if n < 0:

       return -n

   elif n % 2 == 0:

       return 2*n + 1 + f(n-3)

   elif n % 2 != 0:

       return 4*n + 2*f(n-4)

print(f(33))# = 11612

2)

def f(n):

   if n < 2:

      return 1

   elif n % 2 == 0:

       return f(n/2) + 1

   else:

       return f(n-3) + 3

counter = 0

for i in range(1,100001):

   if f(i) == 12:

       counter += 1

print(counter) // 26

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика