
21.Ниже записан рекурсивный алгоритм F. procedure F(n: integer); begin writeln(n); if n < 4
then begin F(n + 1); F(n + 3 end end Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова F(1)?

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

Вложенность отмечена отступами.
Начало
F(1)
Вывод 1
1 < 4 Истина
F(1+1=2)
Вывод 2
2 < 4 Истина
F(2+1=3)
Вывод 3
3 < 4 Истина
F(3+1=4)
Вывод 4
4 < 4 Ложь
Конец
F(3+3=6)
Вывод 6
6 < 4 Ложь
Конец
F(2+3=5)
Вывод 5
5 < 4 Ложь
Конец
F(1+3=4)
Вывод 4
4 < 4 Ложь
Конец
Конец.
1+2+3+4+6+5+4 = 25



Давайте разберем, что происходит при выполнении алгоритма F(1):
При вызове F(1), значение n равно 1.
Сначала происходит вывод числа 1 на экран:
writeln(1);
Затем проверяется условие
n < 4
. Так как 1 меньше 4, условие истинно.Выполняется первый рекурсивный вызов:
F(n + 1);
- Здесь, n + 1 = 1 + 1 = 2, поэтому вызов F(2) запускается.
Для F(2):
- Выводится число 2 на экран:
writeln(2);
- Проверяется условие
n < 4
. Так как 2 меньше 4, условие истинно. - Выполняется второй рекурсивный вызов:
F(n + 3);
- Здесь, n + 3 = 2 + 3 = 5, поэтому вызов F(5) запускается.
- Выводится число 2 на экран:
Для F(5):
- Выводится число 5 на экран:
writeln(5);
- Теперь проверяется условие
n < 4
. Но 5 не меньше 4, поэтому рекурсивные вызовы заканчиваются.
- Выводится число 5 на экран:
Таким образом, числа, которые будут напечатаны на экране при выполнении вызова F(1), это: 1, 2 и 5.
Сумма всех этих чисел: 1 + 2 + 5 = 8.


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







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