
Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова F(3)? void F(int n) {
cout << n; if (n > 1) { F(n - 1); F(n - 3); } }

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

Решение - в прилагаемом файле.
Ответ: 3+2+1-1+0 = 5




В данном задании при вызове функции сразу выводится "n", независимо от условия "if (n > 1)". Проще всего нарисовать дерево.
Разберем построчно, не считая фигурных скобок:
1а. Вызываем F(3).
2а. Выводится "3" (на выводе: 3).
3а. Так как выполняется условие "if (n > 1)" (3 больше 1), то от F(3) идет две функции:
F(3-1) = F(2);
F(3-3) = F(0);
1б. Приступаем к F(2).
2б. Выводится "2" (на выводе: 3, 2).
3б. Так как выполняется условие "if (n > 1)" (2 больше 1), то от F(2) идет две функции:
F(2 - 1) = 1;
F(2 - 3) = -1;
1в. Вызывается F(1).
2в. Выводится "1" (на выводе: 3, 2, 1).
3в. Так как не выполняется условие "if (n > 1)" (1 не больше 1), то вызов прекращается и идет к F(-1).
1г. Вызывается F(-1).
2г. Выводится "-1" (на выводе: 3, 2, 1, -1).
3г. Так как не выполняется условие "if (n > 1)" (-1 не больше 1), то вызов прекращается и идет к F(0).
1д. Вызывается F(0).
2д. Выводится "0"(на выводе: 3, 2, 1, -1, 0).
3д. Так как не выполняется условие "if (n > 1)" (0 не больше 1), то вызов прекращается.
Итого, вывод: 3, 2, 1, -1, 0.
Суммируем данные цифры: 3 + 2 + 1 - 1 + 0 = 5.
Ответ: 5.




Для вычисления суммы всех чисел, напечатанных на экране при выполнении вызова функции F(3), мы можем проанализировать последовательность вызовов функции и сложить все числа, которые будут выведены.
Функция F(3) будет выполняться следующим образом:
- Сначала будет выведено число 3.
- Затем функция F(2) будет вызвана дважды с параметрами 2 и 0.
Функция F(2) при вызове с параметром 2 выведет число 2 и вызовет F(1) и F(-1).
Функция F(1) выведет число 1 и вызовет F(0) и F(-2).
Функция F(0) выведет число 0.
Функция F(-2) не будет выполняться, так как условие (n > 1) не выполняется.
Итак, сумма всех чисел, напечатанных на экране, равна:
3 + 2 + 1 + 0 = 6
Сумма всех чисел, напечатанных на экране при выполнении вызова F(3), равна 6.


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









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