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

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

 

Бей­сикPython

SUB F(n)

    PRINT n

    IF n < 5 THEN

        F(n + 1)

        F(n + 3)

    END IF

END SUB

def F(n):

    print(n)

    if n < 5:

        F(n + 1)

        F(n + 3)

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

procedure F(n: integer);

    begin

        writeln(n);

        if n < 5 then

            begin

                F(n + 1);

                F(n + 3)

            end

    end

алг F(цел n)

нач

вывод n, нс

если n < 5 то

    F(n + 1)

    F(n + 3)

все

кон

С++

void F(int n)

{

    cout << n << endl;

    if (n < 5) {

        F(n + 1);

        F(n + 3);

    }

}

 

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

Спрятать решение

Ре­ше­ние.

Пер­вым дей­стви­ем про­це­ду­ра F(1) вы­ве­дет число 1. Далее про­це­ду­ра F(1) вы­зо­вет про­це­ду­ру F(n + 1), в ре­зуль­та­те вы­пол­не­ния ко­то­рой на экра­не по­явит­ся число n + 1  =  2. Про­це­ду­ра F(2) вы­зо­вет про­це­ду­ру F(3), ко­то­рая вы­ве­дет на экран число 3 и вы­зо­вет про­це­ду­ру F(4), ко­то­рая вы­ве­дет на экран число 4 и вы­зо­вет F(5), ко­то­рая вы­ве­дет на экран число 5.

После этого управ­ле­ние вернётся к про­це­ду­ре F(4), ко­то­рая начнёт вы­пол­нять сле­ду­ю­щий шаг сво­е­го ал­го­рит­ма, т. е. об­ра­тить­ся к про­це­ду­ре F(n + 3) = F(7). Про­це­ду­ра F(7) вы­ве­дет на экран число 7. Далее управ­ле­ние вернётся к про­це­ду­ре F(3). Рас­суж­дая ана­ло­гич­но при­хо­дим к вы­во­ду, что про­це­ду­ра F(3) до­пол­ни­тель­но вы­ве­дет на экран число 6, про­це­ду­ра F(2)  — 5.

По­след­ним дей­стви­ем про­це­ду­ры F(1) будет вызов про­це­ду­ры F(n + 3) = F(4), ко­то­рая вы­ве­дет на экран числа 4, 5, 7.

Таким об­ра­зом, на экра­не будут числа 1, 2, 3, 4, 5, 7, 6, 5, 4, 5, 7. Их сумма равна 49.

 

Ответ: 49.

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ—2015 по ин­фор­ма­ти­ке
Раздел кодификатора ФИПИ: 1.5.3 Ин­дук­тив­ное опре­де­ле­ние объ­ек­тов