Задать вопрос
21 мая, 18:44

Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова F (3) ?

void F (int n)

{

cout << n;

if (n > 1)

{

F (n - 1) ;

F (n - 3) ;

}

}

+5
Ответы (2)
  1. 21 мая, 19:08
    0
    В данном задании при вызове функции сразу выводится "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.
  2. 21 мая, 19:40
    0
    Решение - в прилагаемом файле.

    Ответ: 3+2+1-1+0 = 5
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова F (3) ? void F (int n) { cout 1) { F (n - 1) ; F (n - 3) ; } } ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы