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

Ниже на пяти язы­ках про­грам­ми­ро­ва­ния за­пи­сан ре­кур­сив­ный ал­го­ритм 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.

Раздел кодификатора ФИПИ: 1.5.3 Ин­дук­тив­ное опре­де­ле­ние объ­ек­тов