Ниже записан рекурсивный алгоритм F. Чему равна сумма напечатанных на экране чисел при выполнении вызова F(10)?
procedure F (n:integer);
begin
if n > 2 then begin
writeln (n);
F (n-3);
F (n-4)
end
end;
Ответы на вопрос
Ответ: 33.
Разберём работу рекурсивного алгоритма F(10).
Дан алгоритм:
procedure F(n: integer);
begin
if n > 2 then
begin
writeln(n);
F(n-3);
F(n-4)
end
end;Алгоритм работает следующим образом:
Если число
n > 2, оно выводится на экран.Затем вызывается функция
F(n-3).После её завершения вызывается функция
F(n-4).Если
n <= 2, функция ничего не выводит и завершает работу.
Рассмотрим выполнение F(10) по шагам.
1. Вызов F(10)
Так как 10 > 2, на экран выводится число 10.
Затем вызываются F(7) и F(6).
2. Вызов F(7)
Выводится число 7.
Затем вызываются F(4) и F(3).
F(4): выводится 4. Вызовы F(1) и F(0) ничего не выводят.
F(3): выводится 3. Вызовы F(0) и F(-1) ничего не выводят.
3. Вызов F(6)
Выводится число 6.
Затем вызываются F(3) и F(2).
F(3): выводится 3. Вызовы F(0) и F(-1) ничего не выводят.
F(2): ничего не выводится, поскольку 2 не больше 2.
Таким образом, на экран последовательно выводятся числа:
10, 7, 4, 3, 6, 3
Вычислим их сумму:
Итоговый ответ: 33.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

