Напишите программу, вычисления рекурсивной функции. Алгоритм вычисления значения функции 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.

Tittans7 Tittans7    2   27.01.2022 10:19    2

Ответы
potochnystanis potochnystanis  27.01.2022 10:20

Код:

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)

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