
Функция F(n), где n – натуральное число, задана следующим образом: function F(n: integer):
integer; begin if n < 5 then F := F(3*n) + F(n + 3) + F(n + 1) else F := n div 2; end; Чему будет равно значение, вычисленное алгоритмом при выполнении вызова F(2)?

Ответы на вопрос

Ответ:
23
Объяснение:
F(2)= F(6)+F(5)+F(3)= 3+2+F(3)
F(3)=F(9)+F(6)+F(4)=4+3+F(4)
F(4)=F(12)+F(7)+F(5)=6+3+2=11
F(3)=4+3+11=18
F(2)=3+2+18=23



Для вычисления значения при вызове f(2), нужно последовательно выполнить условия, описанные в заданной функции:
1. Проверим условие n < 5: 2 < 5 - условие выполняется. 2. Выполним рекурсивный вызов f(3*n): f(3*2) = f(6) - Проверим условие n < 5: 6 < 5 - условие не выполняется. - Вычислим n div 2: 6 div 2 = 3. - Результатом f(6) будет 3.
3. Выполним рекурсивный вызов f(n + 3): f(2 + 3) = f(5) - Проверим условие n < 5: 5 < 5 - условие не выполняется. - Вычислим n div 2: 5 div 2 = 2. - Результатом f(5) будет 2.
4. Выполним рекурсивный вызов f(n + 1): f(2 + 1) = f(3) - Проверим условие n < 5: 3 < 5 - условие выполняется. - Выполним рекурсивный вызов f(3*n): f(3*3) = f(9) - Проверим условие n < 5: 9 < 5 - условие не выполняется. - Вычислим n div 2: 9 div 2 = 4. - Результатом f(9) будет 4. - Выполним рекурсивный вызов f(n + 3): f(3 + 3) = f(6) - Проверим условие n < 5: 6 < 5 - условие не выполняется. - Вычислим n div 2: 6 div 2 = 3. - Результатом f(6) будет 3. - Выполним рекурсивный вызов f(n + 1): f(3 + 1) = f(4) - Проверим условие n < 5: 4 < 5 - условие выполняется. - Выполним рекурсивный вызов f(3*n): f(3*4) = f(12) - Проверим условие n < 5: 12 < 5 - условие не выполняется. - Вычислим n div 2: 12 div 2 = 6. - Результатом f(12) будет 6. - Выполним рекурсивный вызов f(n + 3): f(4 + 3) = f(7) - Проверим условие n < 5: 7 < 5 - условие не выполняется. - Вычислим n div 2: 7 div 2 = 3. - Результатом f(7) будет 3. - Выполним рекурсивный вызов f(n + 1): f(4 + 1) = f(5) - Проверим условие n < 5: 5 < 5 - условие не выполняется. - Вычислим n div 2: 5 div 2 = 2. - Результатом f(5) будет 2.
Таким образом, значение, вычисленное алгоритмом при вызове f(2), будет равно 2.


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