
Дан рекурсивный алгоритм: function F(n: integer): integer; begin if n>2 then F:=F(n-1)+F(n-2)
else F:=n; end; Чему будет равно значение, вычисленное алгоритмом при выполнении вызова F(3)?

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

Ответ:
3
Объяснение:
F(3)
1) F(n) = F(3) (n=3)
n = 3 > 2 → да
F = F(2)+F(1) =...
______________
2) F(n) = F(2) (n=2)
n = 2 > 2 → нет
F = n = 2
3) F(n) = F(1) (n=1)
n = 1 > 2 → нет
F = n = 1
______________
→
... = F(2)+F(1) = 2+1 = 3



Значение, вычисленное алгоритмом при выполнении вызова F(3), будет равно 2.
Давайте разберемся, как работает данный рекурсивный алгоритм. Алгоритм F принимает целочисленный аргумент n и возвращает целочисленное значение. Внутри алгоритма происходит проверка условия: если n больше 2, то значение F(n) вычисляется как сумма F(n-1) и F(n-2), иначе значение F(n) равно n.
В нашем случае, при вызове F(3), условие n > 2 выполняется, поэтому происходит вычисление значения F(3) как суммы F(2) и F(1). Значение F(2) равно 1, так как при вызове F(2) выполняется условие n > 2 и происходит вычисление суммы F(1) и F(0). Значение F(1) равно 1, так как при вызове F(1) условие n > 2 не выполняется и значение F(1) равно самому аргументу n. Значение F(0) также равно 0, так как условие n > 2 не выполняется и значение F(0) равно самому аргументу n.
Таким образом, значение F(3) будет равно сумме F(2) и F(1), то есть 1 + 1 = 2.
Ответ: Значение, вычисленное алгоритмом при выполнении вызова F(3), равно 2.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







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