Информатика 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
Новые вопросы
Русский язык,
2 года назад
Русский язык,
2 года назад
Геометрия,
2 года назад
Английский язык,
2 года назад
Химия,
8 лет назад
Геометрия,
8 лет назад