Предмет: Информатика, автор: daniel228798

Информатика 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).

Ответы

Автор ответа: irka1804
1

Ответ:

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

Похожие вопросы
Предмет: Английский язык, автор: димон55555