Предмет: Информатика,
автор: 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).
Ответы
Автор ответа:
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
Предмет: Українська література,
автор: olgabochkova1
Предмет: Українська мова,
автор: Яна123466
Предмет: Физика,
автор: Ilyasham