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

Ниже на пяти язы­ках про­грам­ми­ро­ва­ния за­пи­са­на ре­кур­сив­ная функ­ция (про­це­ду­ра) F.

 

 

Бей­сикPython

SUB F(n)

    PRINT n,

    IF n > 2 THEN

      F(n − 3)

      F(n − 2)

      F(n − 1)

    END IF

END SUB

def F(n):

    print (n, end='')

    if n > 2:

        F(n − 3)

        F(n − 2)

        F(n − 1)

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

procedure F(n: integer);

begin

    write(n);

    if n > 2 then

    begin

      F(n − 3);

      F(n − 2);

      F(n − 1)

    end

end;

алг F(цел n)

нач

    вывод n

    если n > 2 то

      F(n − 3)

      F(n − 2)

      F(n − 1)

    все

кон

Си

void F(int n ){

    cout « n « endl;

    if (n > 2) {

        F(n - 3);

        F(n - 2);

        F(n - 1);

    }

}

 

 

Что вы­ве­дет про­грам­ма при вы­зо­ве F(4)? В от­ве­те за­пи­ши­те по­сле­до­ва­тель­ность вы­ве­ден­ных цифр слит­но (без про­бе­лов).

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

Ре­ше­ние.

Рас­смот­рим струк­ту­ру вы­зо­ва функ­ций, оче­ред­ность.

 

 F(4) {

    F(1)

    F(2)

    F(3) {

       F(0)

       F(1)

       F(2)

    }

 }

 

Так как число пе­ча­та­ет­ся сразу при за­хо­де в функ­цию, то по­ря­док чисел будет сов­па­дать с по­ряд­ком вы­зо­вов.

 

Ответ: 4123012.

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