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




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

Ниже на пяти языках программирования записана рекурсивная функция (процедура) 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)

    }

 }

 

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