В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
xk1
xk1
29.05.2022 14:53 •  Информатика

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.

Ответ:
dominika6
dominika6
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

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?