
Информатика 10 класс Рекурсивные алгоритмы Заранее спасибо Дан рекурсивный алгоритм: procedure
F(n: integer); begin writeln(n); if n < 5 then begin F(n+1); F(n+2); F(n*3) end end;Найдите сумму чисел, которые будут выведены при вызове F(2). 

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

Ответ:
79
Объяснение:
На экран будут выводится числа, с которыми будет вызвана функция.
F(2) вызовет внутри себя F(2+1), F(2+2), F(2*3), то есть F(3), F(4), F(6)
F(3) вызовет F(4), F(5), F(9)
F(4) вызовет F(5), F(6), F(12)
От других чисел функция ничего не вызовет ( из-за условия n < 5).
Теперь посчитаем все. Начнем с F(4), потому что результаты вызовов в ней понятны. Сумма выведенных чисел F(4) равна 4 + 5 + 6 + 12 = 27.
F(3) = 3 + F(4) + 5 + 9 = 3 + 27 + 5 + 9 = 44
F(2) = 2 + F(3) + F(4) + 6 = 2 + 44 + 27 + 6 = 79



Для нахождения суммы чисел, которые будут выведены при вызове F(2)
, нужно выполнить рекурсивный алгоритм, начиная с n = 2
и сложить все выведенные числа. Давайте разберемся, как это происходит.
При вызове
F(2)
:- Выводится число 2.
- Вызывается
F(2+1)
, то естьF(3)
. - Вызывается
F(2+2)
, то естьF(4)
. - Вызывается
F(2*3)
, то естьF(6)
.
При вызове
F(3)
:- Выводится число 3.
- Вызывается
F(3+1)
, то естьF(4)
. - Вызывается
F(3+2)
, то естьF(5)
. - Вызывается
F(3*3)
, то естьF(9)
.
При вызове
F(4)
:- Выводится число 4.
- Вызывается
F(4+1)
, то естьF(5)
. - Вызывается
F(4+2)
, то естьF(6)
. - Вызывается
F(4*3)
, то естьF(12)
.
При вызове
F(5)
:- Выводится число 5.
- Вызывается
F(5+1)
, то естьF(6)
. - Вызывается
F(5+2)
, то естьF(7)
. - Вызывается
F(5*3)
, то естьF(15)
.
При вызове
F(6)
:- Выводится число 6.
- Вызывается
F(6+1)
, то естьF(7)
. - Вызывается
F(6+2)
, то естьF(8)
. - Вызывается
F(6*3)
, то естьF(18)
.
При вызове
F(7)
:- Выводится число 7.
- Вызывается
F(7+1)
, то естьF(8)
. - Вызывается
F(7+2)
, то естьF(9)
. - Вызывается
F(7*3)
, то естьF(21)
.
При вызове
F(8)
:- Выводится число 8.
- Вызывается
F(8+1)
, то естьF(9)
. - Вызывается
F(8+2)
, то естьF(10)
. - Вызывается
F(8*3)
, то естьF(24)
.
При вызове
F(9)
:- Выводится число 9.
- Вызывается
F(9+1)
, то естьF(10)
. - Вызывается
F(9+2)
, то естьF(11)
. - Вызывается
F(9*3)
, то естьF(27)
.
При вызове
F(10)
:- Выводится число 10.
- Вызывается
F(10+1)
, то естьF(11)
. - Вызывается
F(10+2)
, то естьF(12)
. - Вызывается
F(10*3)
, то естьF(30)
.
Теперь сложим все числа, которые были выведены:
2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 9 + 10 + 11 + 10 + 11 + 12 + 10 + 12 + 27 + 10 + 30 = 213.
Сумма чисел, которые будут выведены при вызове F(2)
, равна 213.


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







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