СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости


Задания
Версия для печати и копирования в MS Word
Задание 11 № 7756

Ниже на пяти языках программирования записан рекурсивный алгоритм F.

 

БейсикPython

SUB F(n)

    PRINT n

    IF n > 0 THEN

        F(n - 1)

        F(n - 3)

     END IF

END SUB

def F(n):

    print(n)

    if n > 0:

        F(n - 1)

        F(n - 3)

ПаскальАлгоритмический язык

procedure F(n: integer);

    begin

        writeln(n);

        if n > 0 then

            begin

                F(n - 1);

                F(n - 3)

            end

end

алг F(цел n)

нач

вывод n, нс

если n > 0 то

    F(n - 1)

    F(n - 3)

все

кон

Си

void F(int n)

{

    cout << n;

    if (n > 0)

    {

        F(n - 1);

        F(n - 3);

    }

}

 

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

Решение.

Первым действием процедура F(5) выведет число 5 и вызовет процедуры F(4) и F(2).

Далее процедура F(2) выведет на экран число 2 и вызовет процедуры F(1) и F(−1). Процедура F(1) выведет на экран число 1 и вызовет процедуры F(0) и F(−2). Функция F(0) выведет на экран число 0. Функции F(−1) и F(−2) выведут на экран числа −1 и −2.

Процедура F(4) выведет число 4 и вызовет процедуры F(3) и F(1). Процедура F(1) выведет на экран цифры 1, 0 и −2. Процедура F(3) выведет число 3 и вызовет процедуры F(2) и F(0). Процедура F(2) выведет на экран цифры 2, 1, −2, −1 и 0, а процедура F(0) выведет число 0.

В итоге на экране появятся числа 5, 4, 3, 2, 1, 0, −2, −1, 0, 1, 0, −2, 2, 1, 0, −2, −1.

Сумма чисел будет равна 11.

Ответ: 11.