Задать вопрос
22 мая, 15:31

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

void F (int n)

{

cout << n;

if (n > 1)

{

F (n - 1);

F (n - 3);

}

}

+1
Ответы (2)
  1. 22 мая, 15:44
    0
    Решение - в прилагаемом файле.

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