Предмет: Информатика, автор: minkovmaxim06

Напишите программу, вычисления рекурсивной функции. Алгоритм вычисления значения функции F(n), где n – целое число, задан следующими соотношениями:

F(0) = 0

F(n) = F(n/2), при чётном n > 0

F(n) = F(n - 1) + 3, при нечётном n > 0

Сколько существует значений n, принадлежащих отрезку [1; 1000], для которых F(n) равно 18?

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

Ответы

Автор ответа: Rediska873
0

Код:

def f(n):

   if n == 0:

       return 0

   elif n > 0 and n % 2 == 0:

       return f(n/2)

   elif n > 0 and n % 2 != 0:

       return f(n-1) + 3

counter = 0

for i in range(1, 1001):

   if f(i) == 18:

       counter += 1

print(counter)

Похожие вопросы